isit?

Jun 12

Very dirty way to get a list of required patches for a server using patchlink:

<?PHP

$conn = odbc_connect(‘patchlink’,’patchlink_odbc’,”);

function lookupvulnid($id){
    $conn = odbc_connect(‘patchlink’,’patchlink_odbc’,”);
    $sql=”SELECT VulnerabilityName, VulnerabilityDescription, Impact FROM rpt_Vulnerabilities WHERE VulnerabilityID = ‘”.$id.”’ AND Impact IN (‘Critical’,’Critical - 01’) AND VendorName LIKE ‘Microsoft%’”;
    $res=odbc_exec($conn, $sql);
    while(odbc_fetch_row($res)){
        $vulnName=odbc_result($res, 1);
        $vulnDesc=odbc_result($res, 2);
        $vulnImpact=odbc_result($res, 3);
        print (“”.$vulnName.”<br>”.$vulnDesc.”<br>”.$vulnImpact.”<br>”);
        print(“”.$vulnName.” - “.$vulnImpact.”<br></hr>”);   

    }
}
if ($conn){
    $sql=”SELECT AgentID FROM dbo.rpt_Agents WHERE AgentName LIKE ‘%HOSTNAME’”;
    $res=odbc_exec($conn, $sql);
    $devID=odbc_result($res,1);
    print($devID.”<br>”);

    $sql=”SELECT VulnerabilityID FROM dbo.rpt_VulnerabilityResults WHERE AgentID=’”.$devID.”’ AND Result=’Not Patched’”;
    $res=odbc_exec($conn, $sql);
    while(odbc_fetch_row($res)){
          $vulnID = odbc_result($res, 1);
        lookupvulnid($vulnID);
    }
}else{
    die(“unable to connect”);
}
?>