背景
域渗透的过程中会用到很多 .Net 工具。但是官方仓库没有直接发布的二进制包,那么就需要我们自己手动编译。这些工具又有很多会选择做 NuGet 依赖。如果本地配置不对,就会导致编译失败。
接下来我们就讨论一下怎么解决这个问题。
现象
我们以 ADSearch
为例。这是一个 .Net 工程,可以通过 LDAP 语法收集域信息。仓库链接。
仓库拉下来之后我们在 VS 中打开,然后直接编译,可能会看到这样的警告。
这是因为本地找不到 Nuget 依赖 引起的。下面我们来解决一下这个问题。
解决 Nuget Package 报错
很简单,直接上图。
点击 Project
-> Manage NuGet Packages
。
如果右上角下拉列表里只有默认的本地源,我们必须新增一个。
点击右方齿轮。
点击绿色加号新增。
源名字随意,Source
填如下内容:
https://api.nuget.org/v3/index.json
然后点击 Update
,OK
。
在下拉列表中选择刚添加的源,然后点击右上角的 Restore
。
等待 VS 完成依赖解析。
再次编译即可。
如果有工程报任何包不存在,或者 Namespace ... does not exist ...
。可以在 Browse
一栏中搜索该包名,然后在右方点击 Install
(下面是安装完成时的截图)。然后再编译即可。
如 SharPersist
会报 Namespace TaskScheduler does not exist in Miscrosoft.Win32...
的错。那么搜索该包名,然后安装即可。
编译成功。
参考链接
- https://stackoverflow.com/questions/69045231/nuget-package-sources-missing